<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5749374620125186414</id><updated>2011-12-16T09:55:56.768-08:00</updated><category term='modeling kata'/><category term='designer'/><category term='helios'/><category term='gsoc'/><category term='business'/><category term='emf'/><category term='eclipsecon'/><category term='ui testing'/><category term='ecore'/><category term='intent'/><category term='transformation'/><category term='community'/><category term='maven'/><category term='obeo'/><category term='conference'/><category term='game'/><category term='jboss drools'/><category term='preview'/><category term='galileo'/><category term='chocolate'/><category term='cartography'/><category term='diagram'/><category term='agile'/><category term='amalgamation'/><category term='graphical'/><category term='acceleo'/><category term='eef'/><category term='emf compare'/><category term='software engineering'/><category term='compare'/><category term='uml'/><category term='viewpoint'/><category term='live model'/><category term='atl'/><category term='modeling'/><category term='performance'/><category term='eclipse'/><category term='qt'/><category term='sequence diagram'/><category term='obeo designer'/><title type='text'>Model Driven Blogging</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://model-driven-blogging.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://model-driven-blogging.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Cédric Brun</name><uri>http://www.blogger.com/profile/17900773020510714946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_u5tMWln_Ie8/SRH3NgLBsHI/AAAAAAAAAAY/p_G-WB2DRaA/S220/author_photo.php.jpeg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>66</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5749374620125186414.post-4696937203004590569</id><published>2011-12-16T09:55:00.000-08:00</published><updated>2011-12-16T09:55:56.778-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='emf compare'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><title type='text'>Do you want to discard this editor's changes ?</title><content type='html'>If you've used EMF editors you probably already have seen this kind of dialog :&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-szwzJ2BUbF0/Tut-vdDEJiI/AAAAAAAAAt8/za8cESn5shU/s1600/discard-changes.png" style="color: #0000ee; text-align: center; text-decoration: underline;" /&gt;&lt;br /&gt;&lt;br /&gt;This happens when you did change your model and some external changes (aka somebody else changed your file) happened before you pressed "save". &amp;nbsp;This is not only an EMF problem, any editor has kind of problematic. Either way the end user have a very hard time undestanding why he has to pick one or the other version as &lt;b&gt;most of the time these changes are not conflicting &lt;/b&gt;!&lt;br /&gt;&lt;br /&gt;Is that the best we can do ? &amp;nbsp;Another option is to compare both versions, detect conflicts, and if there is no conflicts, just merge the changes.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-yqQuDcAzzk4/Tut-ufaNoRI/AAAAAAAAAto/PZfnYD-Matc/s1600/step2-unsync.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-yqQuDcAzzk4/Tut-ufaNoRI/AAAAAAAAAto/PZfnYD-Matc/s1600/step2-unsync.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Here I changed the number of pages in the EMF Book from the model, and changed the title through the textual editor. When going back on my editor, the comparison, conflict detection and then merge process happens and I get this :&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-BgtHrJ-QBnI/Tut-tqAEiWI/AAAAAAAAAtk/YpMPaCjnRss/s1600/step3-merged.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-BgtHrJ-QBnI/Tut-tqAEiWI/AAAAAAAAAtk/YpMPaCjnRss/s1600/step3-merged.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;And when I have conflicts? &amp;nbsp;Then the editor can't do much, right, at least it can helps you and show you the conflict :&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-_4iGi009OPc/Tut-sOWRh3I/AAAAAAAAAtU/-P16KEkbz5k/s1600/step6-conflict-resolution.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;br class="Apple-interchange-newline" /&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-_4iGi009OPc/Tut-sOWRh3I/AAAAAAAAAtU/-P16KEkbz5k/s1600/step6-conflict-resolution.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;How is it implemented ? That's fairly easy using emf and it's &lt;a href="http://www.eclipse.org/emf/compare/"&gt;diff/merge support &lt;/a&gt;:&lt;br /&gt;&lt;script src="https://gist.github.com/1487029.js?file=gistfile1.java"&gt;&lt;/script&gt;&lt;br /&gt;&lt;br /&gt;The general process is : the editor tells the WorkspaceSync class when it got saved (or freshly loaded) . This WorkspaceSync keep a copy of the state of the editor as "ancestor". When an event comes from the workspace, the editor version and the workspace versions are compared using the original copy as a common ancestor to detect conflicts. If there is no conflict, it merges, if there is at least one conflict it asks user.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;The drawback is clear with this implementation : you're keeping around - in memory - a copy of your model to be able to detect conflicts later on. &amp;nbsp;As such that solution is not for every case.&lt;br /&gt;&lt;br /&gt;Other options are possible and might be great ways to exercise your EMF skills, if you try something, tell me !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5749374620125186414-4696937203004590569?l=model-driven-blogging.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://model-driven-blogging.blogspot.com/feeds/4696937203004590569/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5749374620125186414&amp;postID=4696937203004590569' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/4696937203004590569'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/4696937203004590569'/><link rel='alternate' type='text/html' href='http://model-driven-blogging.blogspot.com/2011/12/do-you-want-to-discard-this-editors.html' title='Do you want to discard this editor&apos;s changes ?'/><author><name>Cédric Brun</name><uri>http://www.blogger.com/profile/17900773020510714946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_u5tMWln_Ie8/SRH3NgLBsHI/AAAAAAAAAAY/p_G-WB2DRaA/S220/author_photo.php.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-szwzJ2BUbF0/Tut-vdDEJiI/AAAAAAAAAt8/za8cESn5shU/s72-c/discard-changes.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5749374620125186414.post-2743914264775946597</id><published>2011-12-06T07:33:00.000-08:00</published><updated>2011-12-06T07:33:00.571-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='conference'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='modeling'/><title type='text'>Eclipse Day Paris 2011</title><content type='html'>&lt;br /&gt;&lt;div style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-Cp4j-QDC-Ec/TqkcojmCR0I/AAAAAAAAAoM/2aXp5AYReZM/s1600/eclipsedayparis.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em; text-align: center;"&gt;&lt;img border="0" height="119" src="http://1.bp.blogspot.com/-Cp4j-QDC-Ec/TqkcojmCR0I/AAAAAAAAAoM/2aXp5AYReZM/s320/eclipsedayparis.png" width="320" /&gt;&lt;/a&gt;Eclipse Day Paris took place a few weeks ago, every year it is scheduled the week after Eclipse Con Europe. I had the chance to attend the 2011 edition and it was a &lt;b&gt;real pleasure&lt;/b&gt; for several reasons.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;1 - Organization rocked&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The event was perfectly organized. Proxiad and Zenika did a great job, timing was perfect for the presentations, the content was interesting and the french touch for food and wine have been highly appreciated&amp;nbsp;!&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://www.eclipsedayparis.com/2011/uploads/images/Gallery/EDP2011/IMG_1379%20(Custom).JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="213" src="http://www.eclipsedayparis.com/2011/uploads/images/Gallery/EDP2011/IMG_1379%20(Custom).JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;a href="http://www.proxiad.com/"&gt;Proxiad&lt;/a&gt; and &lt;a href="http://www.zenika.com/"&gt;Zenika&lt;/a&gt; are fairly original service providers : highly technical and active in open source communities, it's always a pleasure to collaborate with them.&amp;nbsp;&lt;b&gt;Congrats to the organizers &lt;/b&gt;!&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;2 - Diverse content&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The talks were very diverse, from Ralph and the &lt;b&gt;Eclipse&lt;/b&gt; &lt;b&gt;Foundation&lt;/b&gt; to &lt;b&gt;UI testing&lt;/b&gt; going through &lt;b&gt;modeling&lt;/b&gt;, &lt;b&gt;OSGi&lt;/b&gt;, &lt;b&gt;Scout&lt;/b&gt;, &lt;b&gt;BI&lt;/b&gt; and&lt;b&gt; industrial feedback&lt;/b&gt;. A nice combination.&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;3 - Wide and Diverse audience&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: right;"&gt;&lt;a href="http://4.bp.blogspot.com/-dnCvddjY6G8/TsrAjVp5s3I/AAAAAAAAAtI/z27QhXs4BBA/s800/IMG_1154+%2528Custom%2529.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://4.bp.blogspot.com/-dnCvddjY6G8/TsrAjVp5s3I/AAAAAAAAAtI/z27QhXs4BBA/s320/IMG_1154+%2528Custom%2529.JPG" width="213" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;The event was free and attracted a&lt;b&gt; wide and diverse audience&lt;/b&gt;. That was perfect for me as I was there as "Eclipse Modeling Evangelist", helping people understand what kind of technologies we are building in this project and how they could benefit from it with a very low cost or risk.&lt;/div&gt;&lt;br /&gt;&lt;a href="http://www.eclipsedayparis.com/2011/uploads/slides2011/CedricBrun_EclipseModeling.pdf"&gt;Slides (in english) are available here.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.eclipsedayparis.com/2011/uploads/images/Gallery/EDP2011/IMG_1164%20(Custom).JPG" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="213" src="http://www.eclipsedayparis.com/2011/uploads/images/Gallery/EDP2011/IMG_1164%20(Custom).JPG" width="320" /&gt;&lt;/a&gt;&lt;br /&gt;The room was crowded and actively listening. I had many interactions after the talk. The Eclipse Modeling project is very hard to understand from the outside, it is &lt;b&gt;highly fragmented and poorly publicized&lt;/b&gt;. I'll try to give more talks of this kind in the future.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;4 - Hands on&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Afternoon we had an "hands on" session with Obeo Designer, timing was short but all the attendees managed to build a DSL and a graphical modeler during the session.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://www.eclipsedayparis.com/2011/uploads/images/Gallery/EDP2011/IMG_1419%20(Custom).JPG" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="213" src="http://www.eclipsedayparis.com/2011/uploads/images/Gallery/EDP2011/IMG_1419%20(Custom).JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;It's always &lt;b&gt;enlightening for us &lt;/b&gt;to interact directly with users trying the technology. It helps us identify very small things which are making a huge difference at the end. Obeo Designer 6.0 will bring a lot of good stuff in this regard, stay tuned !&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;In a nutshell I really liked this event which is a&lt;b&gt; good complement &lt;/b&gt;to other Eclipse events like democamps or eclipse conferences. I'm looking forward to it for next year and can only advice you to book the dates !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5749374620125186414-2743914264775946597?l=model-driven-blogging.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://model-driven-blogging.blogspot.com/feeds/2743914264775946597/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5749374620125186414&amp;postID=2743914264775946597' title='2 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/2743914264775946597'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/2743914264775946597'/><link rel='alternate' type='text/html' href='http://model-driven-blogging.blogspot.com/2011/12/eclipse-day-paris-2011.html' title='Eclipse Day Paris 2011'/><author><name>Cédric Brun</name><uri>http://www.blogger.com/profile/17900773020510714946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_u5tMWln_Ie8/SRH3NgLBsHI/AAAAAAAAAAY/p_G-WB2DRaA/S220/author_photo.php.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-Cp4j-QDC-Ec/TqkcojmCR0I/AAAAAAAAAoM/2aXp5AYReZM/s72-c/eclipsedayparis.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5749374620125186414.post-8928794163682835913</id><published>2011-12-01T11:41:00.000-08:00</published><updated>2011-12-01T11:41:14.389-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='community'/><category scheme='http://www.blogger.com/atom/ns#' term='compare'/><category scheme='http://www.blogger.com/atom/ns#' term='emf'/><title type='text'>SysML Comparison and Contributions</title><content type='html'>&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Community and Ecosystem&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;The Juno release cycle has been very interesting for EMF Compare - &lt;b&gt;as a project&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;Discussions started through the &amp;nbsp;Modeling Platform working group lead to the &lt;b&gt;sponsorship&lt;/b&gt; of a bunch of new features (&lt;i&gt;we covered those before but in a nutshell : &amp;nbsp;UML dedicated support, UI enhancements, Graphical comparison support and Logical Model for EGit).&amp;nbsp;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Meanwhile we took a number of actions to make this project a &lt;b&gt;more welcoming area&lt;/b&gt; for contributions and to ease adoption, some of these actions are technical (documentation, build, tests and continuous integration) and others are focused on community grow (transparency, communication, &lt;a href="http://www.iwmcp.org/2011/"&gt;discussions with academic researchers&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;We &lt;b&gt;are not done yet &lt;/b&gt;and have several remaining actions but we can already see some results :&lt;br /&gt;&lt;br /&gt;-&lt;b&gt; new adopters&lt;/b&gt; appeared and contacted us through the bugzilla with use cases we had not envisionned, trying to keep the answering delay reasonable helped a lot in converging to a patch. Within Eclipse itself we've seen several new projects adopting the technology.&lt;br /&gt;-&lt;b&gt; new features contribution&lt;/b&gt; : &amp;nbsp;thanks to Arthur from Atos a &lt;a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=360757"&gt;dedicated support for SysML&lt;/a&gt; model just got integrated and is now built. In those cases where timeframe is obviously bigger than a simple patch, git helps a lot.&lt;br /&gt;- discussions with academics helped us drafting&lt;b&gt; powerful new features &lt;/b&gt;for 2.0 like fingerprints based matching (&lt;i&gt;a complete blog post about this will come soon&lt;/i&gt;)&lt;br /&gt;&lt;br /&gt;EclipseCon US will be a great place to share our experience, I if you're interested or would like to see a specific topic within this scope,&lt;a href="http://www.eclipsecon.org/2012/sessions/models-and-scm-eclipse-bright-future"&gt; feel free to add a comment.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;More about SysML ...&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The SysML contribution is built on top of the UML dedicated support, it just got integrated and built.&lt;br /&gt;It never got released so it might be a bit rough, and we still have some issues we&lt;a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=365285"&gt; want to fix for 1.3&lt;/a&gt; but if you feel adventurous, &lt;a href="http://download.eclipse.org/modeling/emf/compare/updates/interim/1.3/"&gt;go get the bits here &lt;/a&gt;!&lt;i&gt;(update site)&lt;/i&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5749374620125186414-8928794163682835913?l=model-driven-blogging.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://model-driven-blogging.blogspot.com/feeds/8928794163682835913/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5749374620125186414&amp;postID=8928794163682835913' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/8928794163682835913'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/8928794163682835913'/><link rel='alternate' type='text/html' href='http://model-driven-blogging.blogspot.com/2011/12/sysml-comparison-and-contributions.html' title='SysML Comparison and Contributions'/><author><name>Cédric Brun</name><uri>http://www.blogger.com/profile/17900773020510714946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_u5tMWln_Ie8/SRH3NgLBsHI/AAAAAAAAAAY/p_G-WB2DRaA/S220/author_photo.php.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5749374620125186414.post-6492194988526543878</id><published>2011-11-07T07:56:00.000-08:00</published><updated>2011-11-07T07:58:45.417-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='conference'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='acceleo'/><title type='text'>Follow the White Rabbit ...</title><content type='html'>at Eclipse Day Paris !&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-oYL86NtznB4/Trf-jbYoqJI/AAAAAAAAApI/cSwQ2ghyGMg/s1600/title.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="481" src="http://3.bp.blogspot.com/-oYL86NtznB4/Trf-jbYoqJI/AAAAAAAAApI/cSwQ2ghyGMg/s640/title.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;If you're always wondering why we are so excited about Eclipse Modeling Technologies, if you'd like to understand how technologies relates to each others and how they can be used, stop by at &lt;a href="http://www.eclipsedayparis.com/"&gt;Eclipse Day Paris&lt;/a&gt; tomorrow :&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="background-color: white; font-family: Verdana, 'DejaVu Sans', 'Bitstream Vera Sans', Geneva, sans-serif; font-size: 12px; line-height: 16px;"&gt;&lt;i&gt;"Modeling" . Behind this simple word lies strong opinions, misconceptions, obscure acronyms, meta-things and marketing campains far from the reality of developping an application. But if you look more closely, this forest hides a fairly small set of simple, powerful yet flexible concepts. If you zoom in again, you'll see awesome technologies. While some "dreamers" are giving more and more abstract discourses about modeling, on the field these technologies are pervading, even close to the bare metal in the Eclipse platform itself. In 2011, you might already know you can generate rich applications, but what about web technologies, PHP, C ?&amp;nbsp;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="background-color: white; font-family: Verdana, 'DejaVu Sans', 'Bitstream Vera Sans', Geneva, sans-serif; font-size: 12px; line-height: 16px;"&gt;&lt;i&gt;&lt;br style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /&gt;This talk will start by taking a step back about what is all this modeling stuff, what it isn't and what technologies the Eclipse Modeling project brings in this regard. The focus will be placed on tools and components useful to build any kind of application and not just Eclipse based ones : EMF, Acceleo. You'll come back with examples of how you could leverage those technologies for your own project.&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5749374620125186414-6492194988526543878?l=model-driven-blogging.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://model-driven-blogging.blogspot.com/feeds/6492194988526543878/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5749374620125186414&amp;postID=6492194988526543878' title='1 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/6492194988526543878'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/6492194988526543878'/><link rel='alternate' type='text/html' href='http://model-driven-blogging.blogspot.com/2011/11/follow-white-rabbit.html' title='Follow the White Rabbit ...'/><author><name>Cédric Brun</name><uri>http://www.blogger.com/profile/17900773020510714946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_u5tMWln_Ie8/SRH3NgLBsHI/AAAAAAAAAAY/p_G-WB2DRaA/S220/author_photo.php.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-oYL86NtznB4/Trf-jbYoqJI/AAAAAAAAApI/cSwQ2ghyGMg/s72-c/title.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5749374620125186414.post-3486293101081552945</id><published>2011-10-27T02:00:00.000-07:00</published><updated>2011-10-27T02:00:24.275-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='eclipsecon'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><title type='text'>Obeo @ Eclipse Con Europe</title><content type='html'>Obeo invests a lot in Eclipse projects ( yes, we are a&amp;nbsp;&lt;a href="http://www.eclipse.org/membership/showMembersWithTag.php?TagID=strategic"&gt;Strategic Member&lt;/a&gt;&amp;nbsp;of the Eclipse Foundation), we're building, in the open the modeling platform we need for our &lt;a href="http://www.obeodesigner.com/"&gt;product.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://eclipsecon.org/sites/all/themes/themes/europe2011/images/logo.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" src="http://eclipsecon.org/sites/all/themes/themes/europe2011/images/logo.png" /&gt;&lt;/a&gt;&lt;/div&gt;Conferences like the upcoming Eclipse Con Europe are great time for our team, we get to &lt;b&gt;meet&lt;/b&gt; people we usually interact with using mails or bugzilla, adopters which are using our technologies, we get to have an &lt;i&gt;insider&lt;/i&gt; sight of what is going on here and there, and we're pleased to show to others what we did in the generic technologies or how those pieces are used for domain specific needs.&lt;br /&gt;&lt;br /&gt;This year the Obeo'ers are co-presenting or presenting numerous talks covering a wide spectrum :&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: white; color: #56726e; font-family: Arial, Helvetica, 'URW Gothic L', sans-serif; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th&gt;Time Slot&lt;/th&gt;&lt;th&gt;Presenter&lt;/th&gt;&lt;th&gt;Title&lt;/th&gt;&lt;th&gt;Session Type&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;2 November 09:00 - 12:30&lt;/td&gt;&lt;td&gt;Mariot Chauvin&lt;/td&gt;&lt;td&gt;&lt;a href="http://www.eclipsecon.org/sessions/what-every-eclipse-developer-should-know-about-emf" style="color: #ce7100; font-weight: bold; text-decoration: none;"&gt;What every Eclipse Developer should know about EMF&lt;/a&gt;&lt;/td&gt;&lt;td&gt;Tutorial [3.5 hours]&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;2 November &lt;br /&gt;16:30 - 17:00&lt;/td&gt;&lt;td&gt;Stéphane Bégaudeau&lt;/td&gt;&lt;td&gt;&lt;a href="http://www.eclipsecon.org/europe2011/sessions/and-you-thought-you-knew-template-based-generators" style="color: #ce7100; font-weight: bold; text-decoration: none;"&gt;And you thought you knew Template Based Generators?&lt;/a&gt;&lt;/td&gt;&lt;td&gt;Standard [25 minutes]&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;3 November 09:00 - 09:30&lt;/td&gt;&lt;td&gt;Goulwen Le Fur&lt;/td&gt;&lt;td&gt;&lt;a href="http://www.eclipsecon.org/europe2011/sessions/scientific-application-redesign-oil-industry-eclipse-modeling" style="color: #ce7100; font-weight: bold; text-decoration: none;"&gt;Scientific application redesign in oil industry with Eclipse Modeling&lt;/a&gt;&lt;/td&gt;&lt;td&gt;Standard [25 minutes]&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;3 November 10:30 - 11:30&lt;/td&gt;&lt;td&gt;Mariot Chauvin&lt;/td&gt;&lt;td&gt;&lt;a href="http://www.eclipsecon.org/europe2011/sessions/collaborative-modeling-new-deal" style="color: #ce7100; font-weight: bold; text-decoration: none;"&gt;Collaborative Modeling : the New Deal&lt;/a&gt;&lt;/td&gt;&lt;td&gt;Extended [55 minutes]&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;3 November 11:30 - 12:00&lt;/td&gt;&lt;td&gt;Gaël Blondelle&lt;/td&gt;&lt;td&gt;&lt;a href="http://www.eclipsecon.org/europe2011/sessions/making-opees-industrial-working-group" style="color: #ce7100; font-weight: bold; text-decoration: none;"&gt;The Making of the OPEES Industrial Working Group&lt;/a&gt;&lt;/td&gt;&lt;td&gt;Standard [25 minutes]&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;3 November 15:30 - 16:00&lt;/td&gt;&lt;td&gt;Frédéric Thomas&lt;/td&gt;&lt;td&gt;&lt;a href="http://www.eclipsecon.org/europe2011/sessions/eclipse-railway-safety-engineering" style="color: #ce7100; font-weight: bold; text-decoration: none;"&gt;Eclipse for Railway Safety Engineering&lt;/a&gt;&lt;/td&gt;&lt;td&gt;Standard [25 minutes]&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;3 November 16:00 - 16:30&lt;/td&gt;&lt;td&gt;Mikaël Barbero&lt;/td&gt;&lt;td&gt;&lt;a href="http://www.eclipsecon.org/sessions/what-heck-are-logical-models" style="color: #ce7100; font-weight: bold; text-decoration: none;"&gt;What the heck are logical models?&lt;/a&gt;&lt;/td&gt;&lt;td&gt;Standard [25 minutes]&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;4 November 11:30 - 12:00&lt;/td&gt;&lt;td&gt;Alex Lagarde&lt;/td&gt;&lt;td&gt;&lt;a href="http://www.eclipsecon.org/europe2011/sessions/create-useful-documentation-mylyn-intent-step-further-application-life-cycle-management" style="color: #ce7100; font-weight: bold; text-decoration: none;"&gt;Create useful documentation with Mylyn Intent : a step further in Application Life-cycle Management&lt;/a&gt;&lt;/td&gt;&lt;td&gt;Standard [25 minutes]&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;4 November 15:00 - 15:30&lt;/td&gt;&lt;td&gt;Mikaël Barbero&lt;/td&gt;&lt;td&gt;&lt;a href="http://www.eclipsecon.org/europe2011/sessions/emfcompare-improvements-fulfilling-requirements-modeling-platform-working-group" style="color: #ce7100; font-weight: bold; text-decoration: none;"&gt;EMFCompare improvements: fulfilling requirements of the Modeling Platform Working Group&lt;/a&gt;&lt;/td&gt;&lt;td&gt;Standard [25 minutes]&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;div&gt;Take this chance to discuss with the team !&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Unfortunately I won't be able to make it this year. I'll celebrate the 10th birthday of Eclipse through Twitter/G+, &lt;b&gt;so pleeeeease, tweet-it &lt;/b&gt;!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-Cp4j-QDC-Ec/TqkcojmCR0I/AAAAAAAAAoM/2aXp5AYReZM/s1600/eclipsedayparis.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="119" src="http://1.bp.blogspot.com/-Cp4j-QDC-Ec/TqkcojmCR0I/AAAAAAAAAoM/2aXp5AYReZM/s320/eclipsedayparis.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;On the other hand I will present at &lt;a href="http://www.eclipsedayparis.com/"&gt;Eclipse Day Paris &lt;/a&gt;: &amp;nbsp;&lt;b&gt;What the heck is Eclipse Modeling and why should you care ?&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I'm looking forward to meet you there !&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5749374620125186414-3486293101081552945?l=model-driven-blogging.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://model-driven-blogging.blogspot.com/feeds/3486293101081552945/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5749374620125186414&amp;postID=3486293101081552945' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/3486293101081552945'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/3486293101081552945'/><link rel='alternate' type='text/html' href='http://model-driven-blogging.blogspot.com/2011/10/obeo-eclipse-con-europe.html' title='Obeo @ Eclipse Con Europe'/><author><name>Cédric Brun</name><uri>http://www.blogger.com/profile/17900773020510714946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_u5tMWln_Ie8/SRH3NgLBsHI/AAAAAAAAAAY/p_G-WB2DRaA/S220/author_photo.php.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-Cp4j-QDC-Ec/TqkcojmCR0I/AAAAAAAAAoM/2aXp5AYReZM/s72-c/eclipsedayparis.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5749374620125186414.post-6296517877997441289</id><published>2011-10-18T08:37:00.000-07:00</published><updated>2011-10-18T08:47:56.157-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='uml'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='compare'/><category scheme='http://www.blogger.com/atom/ns#' term='transformation'/><category scheme='http://www.blogger.com/atom/ns#' term='preview'/><title type='text'>Model Transformation Preview</title><content type='html'>Let's say you have a model to model transformation, and you want to provide the ability, for the end-user, to&lt;b&gt; see and control what is going to be applied on the target model&lt;/b&gt;. How could you do that ? EMF compare might do the trick..&lt;br /&gt;&lt;br /&gt;Here is a trivial model transformation, renaming all Classes which are "abstract" by adding a prefix to their name :&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;public class ModelTransformer {&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;public void process(Resource res) {&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;Iterator&lt;eobject&gt; it = EcoreUtil.getAllProperContents(res, true);&lt;/eobject&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;while (it.hasNext()) {&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;EObject eobj = it.next();&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;if (eobj instanceof Class) {&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;    &lt;/span&gt;renameifAbstract((Class)eobj);&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;private void renameifAbstract(Class eobj) {&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;if (eobj.isAbstract() &amp;amp;&amp;amp; !eobj.getName().startsWith("Abstract")) {&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;eobj.setName("Abstract" + eobj.getName());&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;The orchestrator of this process has the following responsabilities : loading the original models, transforming those, and then opening the comparison preview, here is the code coming from an action :&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;protected void transformModelsAndOpenComparison() throws InterruptedException, PartInitException,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;InvocationTargetException {&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;ResourceSet future = new ResourceSetImpl();&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;for (URI uri : selectedURI) {&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;future.getResource(uri, true);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;ModelTransformer transformer = new ModelTransformer();&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;for (Resource res : future.getResources()) {&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;transformer.process(res);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;new DifferencePreview(future).compareWithExisting();&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Future&lt;/i&gt; contains all the models &lt;b&gt;after&lt;/b&gt; they have been transformed. &amp;nbsp;Now the interesting part is in the DifferencePreview class :&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;public class DifferencePreview {&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;private ResourceSet now = new ResourceSetImpl();&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;private ResourceSet future;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;public DifferencePreview(ResourceSet output) {&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;future = output;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;public void compareWithExisting() throws InterruptedException, PartInitException,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;InvocationTargetException {&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;for (Resource futureRes : future.getResources()) {&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;now.getResource(futureRes.getURI(), true);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;MatchResourceSet match = MatchService.doResourceSetMatch(future, now, Collections.EMPTY_MAP);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;DiffResourceSet diff = DiffService.doDiff(match);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;ComparisonResourceSetSnapshot snap = DiffFactory.eINSTANCE.createComparisonResourceSetSnapshot();&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;snap.setDiffResourceSet(diff);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;snap.setMatchResourceSet(match);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;ModelCompareEditorInput input = new ModelCompareEditorInput(snap);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;CompareServices.openEditor(input, Collections.EMPTY_LIST);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Now &lt;/i&gt;contains the state of the models as it's serialized on the filesystem. &amp;nbsp;We starts by constructing the &lt;i&gt;Now&lt;/i&gt; resourceset getting all the resources which are present in the &lt;i&gt;Future&lt;/i&gt; one. Then we call emf compare to compute the required &lt;b&gt;match&lt;/b&gt; and &lt;b&gt;diff&lt;/b&gt; , forge an editor input and open it.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;How does it look like then ?&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-y0egF8rjm6Y/Tp2YUkJLHFI/AAAAAAAAAn4/U-tzStIFPJY/s1600/compare-transfo-uml.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="312" src="http://4.bp.blogspot.com/-y0egF8rjm6Y/Tp2YUkJLHFI/AAAAAAAAAn4/U-tzStIFPJY/s640/compare-transfo-uml.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Pretty easy huh ?&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Now let's say you want to allow the end user to customize your output model and allow him to see when the changes coming from the transformation are in conflict with his customizations. Its getting more interesting : &amp;nbsp;to do so you will need to have a version of the model which &lt;b&gt;has been untouched by the end user&lt;/b&gt; and use it as the ancestor. You need to decide where to keep this data and how to prevent the end user to edit it. It's up to your use case, it might be a file next to the output file, it can be in the Eclipse metadata.. Here for the example we'll just use files with &lt;i&gt;a ".ancestor" suffix (see getAncestorURI) .&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Anyway, then you'll need to move to&lt;b&gt; three way comparison &lt;/b&gt;:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;public class DifferencePreviewWithConflictDetection {&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;private ResourceSet now = new ResourceSetImpl();&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;b&gt;private ResourceSet ancestor = new ResourceSetImpl();&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;private ResourceSet future;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;public DifferencePreviewWithConflictDetection(ResourceSet output) {&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;future = output;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;public void compareWithExisting() throws InterruptedException, PartInitException,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;InvocationTargetException {&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;for (Resource futureRes : future.getResources()) {&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;now.getResource(futureRes.getURI(), true);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;&lt;b&gt;ancestor.getResource(getAncestorURI(futureRes.getURI()),true);&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;MatchResourceSet match = MatchService.doResourceSetMatch(now, future,&lt;span class="Apple-style-span" style="color: red;"&gt; &lt;b&gt;ancestor&lt;/b&gt;&lt;/span&gt;, Collections.EMPTY_MAP);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;DiffResourceSet diff = DiffService.doDiff(match,&lt;b&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;true&lt;/span&gt;&lt;/b&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;ComparisonResourceSetSnapshot snap = DiffFactory.eINSTANCE.createComparisonResourceSetSnapshot();&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;snap.setDiffResourceSet(diff);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;snap.setMatchResourceSet(match);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;ModelCompareEditorInput input = new ModelCompareEditorInput(snap);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;CompareServices.openEditor(input, Collections.EMPTY_LIST);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;b&gt;private URI getAncestorURI(URI uri) {&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&lt;b&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;return uri.appendFileExtension("ancestor");&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&lt;b&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;}&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;And now what happens if the user decides to update the name of an abstract class, here &lt;b&gt;LibraryElement&lt;/b&gt;&amp;nbsp;got renamed in &lt;b&gt;AnyElement&lt;/b&gt;&amp;nbsp;...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-unvCHxpBwNQ/Tp2YWL4V92I/AAAAAAAAAoA/uUeXdcbz3yY/s1600/compare-transfo-uml-conflict.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="312" src="http://2.bp.blogspot.com/-unvCHxpBwNQ/Tp2YWL4V92I/AAAAAAAAAoA/uUeXdcbz3yY/s640/compare-transfo-uml-conflict.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;That's right, &lt;b&gt;we have a conflict &lt;/b&gt;!&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It's a pretty simple example of what you can achieve using emf compare and how you can reuse it in your tooling. The model comparison editor which opens then is slightly different from the one you have &amp;nbsp;using SCM operations and has less features (it does not provide the latest capabilities regarding diff filtering). It is also probably not the best fit for end users if many conflicts have to be handled, you might want a wizard in these cases. These are open subjects left as an exercice to the reader. &amp;nbsp;We are clearly missing building blocks regarding ui so far.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;On the newsgroup, bugzilla or during conferences we are often amazed to see how adopters are re-using the technology for their use case, &lt;b&gt;keep telling us&lt;/b&gt;&lt;i&gt;,&lt;/i&gt; we like to know !&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Next steps ? Plugging this with an &lt;a href="http://eclipse.org/atl/"&gt;ATL&lt;/a&gt; transformation or using the scoping mechanisms (&lt;i&gt;IMatchScope&lt;/i&gt;) to ignore parts of the model we don't want to check, we'll see.. Stay tuned.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5749374620125186414-6296517877997441289?l=model-driven-blogging.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://model-driven-blogging.blogspot.com/feeds/6296517877997441289/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5749374620125186414&amp;postID=6296517877997441289' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/6296517877997441289'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/6296517877997441289'/><link rel='alternate' type='text/html' href='http://model-driven-blogging.blogspot.com/2011/10/model-transformation-preview.html' title='Model Transformation Preview'/><author><name>Cédric Brun</name><uri>http://www.blogger.com/profile/17900773020510714946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_u5tMWln_Ie8/SRH3NgLBsHI/AAAAAAAAAAY/p_G-WB2DRaA/S220/author_photo.php.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-y0egF8rjm6Y/Tp2YUkJLHFI/AAAAAAAAAn4/U-tzStIFPJY/s72-c/compare-transfo-uml.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5749374620125186414.post-7776696937751658312</id><published>2011-10-10T07:59:00.000-07:00</published><updated>2011-10-10T08:24:41.271-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='emf compare'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><title type='text'>Model Comparison :  Logical Model, UML, Papyrus, EcoreTools and GMF Integration</title><content type='html'>&lt;a href="http://www.eclipse.org/modeling/emf/images/emf_logo.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" src="http://www.eclipse.org/modeling/emf/images/emf_logo.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;We&amp;nbsp; just promoted an EMF Compare 1.3 integration build providing all the latests    developments regarding EMF Compare, in a nutshell:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;-&lt;b&gt; Logical Model&lt;/b&gt; support for team operations (more especially with    the eGit team provider)&lt;br /&gt;- &lt;b&gt;UML&lt;/b&gt; semantic comparison with dedicated management of profiles,    stereotypes, and &lt;b&gt;dependencies across changes&lt;/b&gt;&lt;br /&gt;- &lt;b&gt;GMF&lt;/b&gt; generic bridge for graphical comparison&lt;br /&gt;- &lt;b&gt;Papyrus&lt;/b&gt; specific bridge for UML diagrams comparison&lt;br /&gt;-&lt;b&gt; EcoreTools&lt;/b&gt; specific bridge for Ecore diagrams comparison&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-QnuIRtATUd4/TpMMEWrcVpI/AAAAAAAAAnQ/a0o0Y8f99tE/s1600/graphcompare-screen.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="378" src="http://4.bp.blogspot.com/-QnuIRtATUd4/TpMMEWrcVpI/AAAAAAAAAnQ/a0o0Y8f99tE/s640/graphcompare-screen.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;The build is here :&lt;br /&gt;&lt;br /&gt;&lt;a href="http://download.eclipse.org/modeling/emf/compare/updates/interim/1.3/"&gt;http://download.eclipse.org/modeling/emf/compare/updates/interim/1.3/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;(subsequent updates will be pushed here too)&lt;br /&gt;&lt;br /&gt;Depending on what you are trying to install you might need the orbit    update site (google collection):&lt;br /&gt;&lt;br /&gt;&lt;a class="moz-txt-link-freetext" href="http://download.eclipse.org/tools/orbit/downloads/drops/R20110523182458/repository"&gt;http://download.eclipse.org/tools/orbit/downloads/drops/R20110523182458/repository&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The Indigo one (papyrus, gmf and Ecoretools):&lt;br /&gt;&lt;br /&gt;&lt;a class="moz-txt-link-freetext" href="http://download.eclipse.org/releases/indigo"&gt;http://download.eclipse.org/releases/indigo&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Please if you are interested in any of this change, go grab the    build and have a try, we will welcome your feedback &lt;a href="https://bugs.eclipse.org/bugs/enter_bug.cgi?product=EMF&amp;amp;component=Compare"&gt;through the    bugzilla&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5749374620125186414-7776696937751658312?l=model-driven-blogging.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://model-driven-blogging.blogspot.com/feeds/7776696937751658312/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5749374620125186414&amp;postID=7776696937751658312' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/7776696937751658312'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/7776696937751658312'/><link rel='alternate' type='text/html' href='http://model-driven-blogging.blogspot.com/2011/10/model-comparison-logical-model-uml.html' title='Model Comparison :  Logical Model, UML, Papyrus, EcoreTools and GMF Integration'/><author><name>Cédric Brun</name><uri>http://www.blogger.com/profile/17900773020510714946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_u5tMWln_Ie8/SRH3NgLBsHI/AAAAAAAAAAY/p_G-WB2DRaA/S220/author_photo.php.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-QnuIRtATUd4/TpMMEWrcVpI/AAAAAAAAAnQ/a0o0Y8f99tE/s72-c/graphcompare-screen.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5749374620125186414.post-5785203010688962162</id><published>2011-09-28T03:36:00.000-07:00</published><updated>2011-09-28T03:36:00.168-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><title type='text'>Synchronizing data : Dropbox-like based on open-source stack</title><content type='html'>I had to find a solution for my &lt;b&gt;backup/cloud drive&lt;/b&gt; needs lately. &lt;a href="http://www.dropbox.com/pricing"&gt;Dropbox&lt;/a&gt; works just fine, but the pricing is going high to fast as you want more space.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;A 1To / 100Mbs dedicated server is &lt;a href="http://www.kimsufi.com/"&gt;not that expensive&lt;/a&gt; and provides the nice perspective of more server/web oriented hacks later on.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;After trying a few open source projects in this regard (&lt;a href="http://www.syncany.org/"&gt;Syncany&lt;/a&gt;, &lt;a href="http://www.csync.org/"&gt;Csync&lt;/a&gt; or &lt;a href="http://sparkleshare.org/"&gt;SparkleShare&lt;/a&gt;) and keeping away from the desire of building my own, here is my short list :&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Sparkleshare is very nice for things which I want to keep versions of. I really like the fact that it's keeping everything in a git repository, any file manager providing git integration will then allow me to dig through the history of files. As I'm not interested in the fact that it works on multiple platforms (linux, mac and soon windows) I still have to check if a&amp;nbsp;script launching automatic &lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;git add . &amp;amp;&amp;amp; git commit &amp;amp;&amp;amp; git pus&lt;/span&gt;h&lt;/span&gt; is not going to be as reliable as SparkleShare while being lighter.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;For non versioned directories, &lt;a href="http://linux.die.net/man/1/inotifywait"&gt;inotifywait&lt;/a&gt; + csync are just fine. (incron, a cron-like tool but using filesystem events as an input did work but is not supporting recursive watching)&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I also considered Syncany but did not liked the fact that server side chunks of data are used which have no standard way of being accessed beside Syncany. I quickly had the feeling that git would do just fine in this regard, especially with a few &lt;span class="Apple-style-span"&gt;git gc --aggressive&lt;/span&gt; from time to time.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I'm&lt;i&gt; pretty sure&lt;/i&gt; using the new &lt;a href="http://thecodersbreakfast.net/index.php?post/2011/05/18/Filesystem-notifications-with-Java-7"&gt;Java 7 filesystem notifications &lt;/a&gt;+ &lt;a href="http://eclipse.org/jgit/"&gt;jgit&lt;/a&gt; one could very quickly build an highly efficient and multi-platform solution. I managed to refrain myself trying it, but if you do or know someone who did, please let me know ;) &lt;b&gt;edit&lt;/b&gt; : &lt;i&gt;&lt;a href="https://github.com/mbarbero"&gt;Mikael&lt;/a&gt; did start such a thing on &lt;a href="https://github.com/mbarbero/backgitup"&gt;github&lt;/a&gt;&amp;nbsp;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;If you are an OpenSuse user here is the &lt;a href="http://download.opensuse.org/repositories/network:/synchronization:/files/openSUSE_11.4/"&gt;magic repository.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;We'll see in a few month if I'm still happy with this solutions.&lt;b&gt; Feel free to add a comment if you have other options &lt;/b&gt;!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5749374620125186414-5785203010688962162?l=model-driven-blogging.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://model-driven-blogging.blogspot.com/feeds/5785203010688962162/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5749374620125186414&amp;postID=5785203010688962162' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/5785203010688962162'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/5785203010688962162'/><link rel='alternate' type='text/html' href='http://model-driven-blogging.blogspot.com/2011/09/synchronizing-data-dropbox-like-based.html' title='Synchronizing data : Dropbox-like based on open-source stack'/><author><name>Cédric Brun</name><uri>http://www.blogger.com/profile/17900773020510714946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_u5tMWln_Ie8/SRH3NgLBsHI/AAAAAAAAAAY/p_G-WB2DRaA/S220/author_photo.php.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5749374620125186414.post-5829610168321635030</id><published>2011-09-21T02:16:00.000-07:00</published><updated>2011-09-21T02:16:00.094-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='graphical'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='diagram'/><category scheme='http://www.blogger.com/atom/ns#' term='obeo designer'/><category scheme='http://www.blogger.com/atom/ns#' term='game'/><category scheme='http://www.blogger.com/atom/ns#' term='emf'/><title type='text'>Textual Adventures in Ecore + Graphical Modeler</title><content type='html'>I was cleaning up my &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;${HOME}&lt;/span&gt; folder today and found a set of demos I prepared two years ago. &lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I did this for a modeling course given at&lt;a href="http://www.polytech.univ-nantes.fr/"&gt; Polytech'&lt;/a&gt; . The course was about Model Driven Engineering, toward the end the student have to build a domain specific model for textual adventure games and then generate the corresponding Java app. Some students tend to go very far on this exercice buidling a fairly complex DSL.&lt;/div&gt;&lt;div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;The following demos are here to given an idea to the student of what can be done in a few minutes : a simple Ecore model&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-56zFyxZPdGE/TmnW6PBNBsI/AAAAAAAAAmw/G9dwegS5FJI/s1600/adventure-domain.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="214" src="http://1.bp.blogspot.com/-56zFyxZPdGE/TmnW6PBNBsI/AAAAAAAAAmw/G9dwegS5FJI/s320/adventure-domain.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;And then a graphical modeler :&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-KBdnBr8qWVI/TmnXTKacAQI/AAAAAAAAAm0/i7sYvoicPjk/s1600/adventure-modeler.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="190" src="http://2.bp.blogspot.com/-KBdnBr8qWVI/TmnXTKacAQI/AAAAAAAAAm0/i7sYvoicPjk/s320/adventure-modeler.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;And then we build Acceleo generator templates to directly map a game instance into its running Java code. It's a very interesting exercise, students are staying &lt;b&gt;focused&lt;/b&gt; because it's about game, and at the same time it's a great example of the power of &lt;b&gt;specific modeling&lt;/b&gt;. You don't design a game with an UML diagram, but building your own langage and using it you're quickly getting results and can &lt;b&gt;evaluate many designs&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;Building the complete tooling is a matter of minutes, not hours, here are the live demos :&lt;br /&gt;&lt;br /&gt;Designing the Domain Model : &lt;a href="http://ks360939.kimsufi.com/~cedric/data/AdventureGameEcore.htm"&gt;vidéo&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Specifying while running the Graphical Designer : &lt;a href="http://ks360939.kimsufi.com/~cedric/data/GameModeler1.htm"&gt;part1 &lt;/a&gt;and &lt;a href="http://ks360939.kimsufi.com/~cedric/data/GameModeler2.htm"&gt;part2&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;As a sidenote, these flash demos are based on a pretty old version of Obeo Designer, if you're interested, have a look on the latest versions which are even better &amp;nbsp;!&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5749374620125186414-5829610168321635030?l=model-driven-blogging.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://model-driven-blogging.blogspot.com/feeds/5829610168321635030/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5749374620125186414&amp;postID=5829610168321635030' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/5829610168321635030'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/5829610168321635030'/><link rel='alternate' type='text/html' href='http://model-driven-blogging.blogspot.com/2011/09/textual-adventures-in-ecore-graphical.html' title='Textual Adventures in Ecore + Graphical Modeler'/><author><name>Cédric Brun</name><uri>http://www.blogger.com/profile/17900773020510714946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_u5tMWln_Ie8/SRH3NgLBsHI/AAAAAAAAAAY/p_G-WB2DRaA/S220/author_photo.php.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-56zFyxZPdGE/TmnW6PBNBsI/AAAAAAAAAmw/G9dwegS5FJI/s72-c/adventure-domain.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5749374620125186414.post-8314226034257898745</id><published>2011-09-14T05:08:00.000-07:00</published><updated>2011-09-14T05:08:00.699-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gsoc'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='acceleo'/><title type='text'>Eclipse Modeling : the definitive tutorial</title><content type='html'>One of the thing we keep hearing from the adopters is : we need more doc, not just reference documentation but also how using and combining the Eclipse Modeling components.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Richard Gronback's answer to these request was to write a book. But as we are living in a fast changing world filled with innovation it quickly got outdated.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Reinaldo de Souza, a &lt;a href="http://wiki.eclipse.org/Google_Summer_of_Code"&gt;GSOC&lt;/a&gt; student did an amazing work as part of the Amalgamation Project. He did prepare an awesome cross-modeling components tutorials : the design of an Android DSL using Ecore, providing a textual syntax using XText, customizing EMF editors using EEF up to generating the Android code using Acceleo.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;br /&gt;The EMF &lt;b&gt;domain model&lt;/b&gt; and Eclipse editors&lt;br /&gt;&lt;a href="https://github.com/eclipse-soc/amalgamation-examples-emf"&gt;https://github.com/eclipse-soc/amalgamation-examples-emf&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;Xtext &lt;b&gt;Textual syntax&lt;/b&gt; for the DSL :&lt;br /&gt;&lt;a class="ot-anchor" href="https://github.com/eclipse-soc/amalgamation-examples-xtext" style="color: #3366cc; cursor: pointer; text-decoration: none;"&gt;https://github.com/eclipse-soc/amalgamation-examp&lt;wbr&gt;&lt;/wbr&gt;les-xtext&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Acceleo to &lt;b&gt;generate&lt;/b&gt; the Android code :&lt;br /&gt;&lt;a class="ot-anchor" href="https://github.com/eclipse-soc/amalgamation-examples-acceleo" style="color: #3366cc; cursor: pointer; text-decoration: none;"&gt;https://github.com/eclipse-soc/amalgamation-examp&lt;wbr&gt;&lt;/wbr&gt;les-acceleo&lt;/a&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, serif; font-size: 16px; line-height: normal;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, serif; font-size: 16px; line-height: normal;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, serif; font-size: 16px; line-height: normal;"&gt;It is more than just a start, it really is a complete tutorial with step by step instruction on the wiki  and the corresponding projects one can import in his workspace.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, serif; font-size: 16px; line-height: normal;"&gt;&lt;a href="https://github.com/eclipse-soc/amalgamation-examples-acceleo/wiki/Android-code-generation-with-Acceleo"&gt;https://github.com/eclipse-soc/amalgamation-examples-acceleo/wiki/Android-code-generation-with-Acceleo&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, serif; font-size: 16px; line-height: normal;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, serif; font-size: 16px; line-height: normal;"&gt;The original idea was to provide also tutorials and examples for GMF or Graphiti. It could not be done in the timeframe but anybody wanting to continue the example with the same domain model using other components is &lt;b&gt;very welcome&lt;/b&gt; !&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, serif; font-size: 16px; line-height: normal;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, serif; font-size: 16px; line-height: normal;"&gt;Now we still have to package it properly so that the adopters can get it in a nicely integrated way in their IDE.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, serif; font-size: 16px; line-height: normal;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, serif; font-size: 16px; line-height: normal;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5749374620125186414-8314226034257898745?l=model-driven-blogging.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://model-driven-blogging.blogspot.com/feeds/8314226034257898745/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5749374620125186414&amp;postID=8314226034257898745' title='1 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/8314226034257898745'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/8314226034257898745'/><link rel='alternate' type='text/html' href='http://model-driven-blogging.blogspot.com/2011/09/eclipse-modeling-definitive-tutorial.html' title='Eclipse Modeling : the definitive tutorial'/><author><name>Cédric Brun</name><uri>http://www.blogger.com/profile/17900773020510714946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_u5tMWln_Ie8/SRH3NgLBsHI/AAAAAAAAAAY/p_G-WB2DRaA/S220/author_photo.php.jpeg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5749374620125186414.post-5246499953484002343</id><published>2011-09-07T04:55:00.000-07:00</published><updated>2011-09-07T05:07:22.740-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='eclipsecon'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='acceleo'/><title type='text'>Collaborative Modeling : the New Deal</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;a href="http://3.bp.blogspot.com/-ugAFHv97sFk/TmddyN5VOFI/AAAAAAAAAmo/I-DDeEOKxd4/s1600/lock.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-family: Arial, sans-serif; font-size: 13px; line-height: 18px; background-color: rgb(255, 255, 255); "&gt;Want to know how we tackle collaborative modeling @ Obeo ? Want to see&lt;b&gt; live demos &lt;/b&gt;of consistent optimistic or painless pessimistic strategies ? Want to see more of what is going on mixing &lt;b&gt;Mylyn&lt;/b&gt; and EMF/GEF/GMF ? Want to see live collaborative UI based on &lt;b&gt;CDO/Dawn &lt;/b&gt;?&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Arial, sans-serif; font-size: 13px; line-height: 18px; background-color: rgb(255, 255, 255); "&gt;Benjamin Muskalla (Tasktop), Martin Fluegge and I did prepare something for you.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;img src="http://3.bp.blogspot.com/-ugAFHv97sFk/TmddyN5VOFI/AAAAAAAAAmo/I-DDeEOKxd4/s320/lock.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5649587374864545874" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 320px; height: 230px; " /&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, sans-serif; font-size: 13px; line-height: 18px; background-color: rgb(255, 255, 255); "&gt;All you have to do is to&lt;b&gt; vote for&lt;a href="http://eclipsecon.org/sessions/collaborative-modeling-new-deal"&gt; this  talk&lt;/a&gt;&lt;/b&gt; and come to EclipseCon Europe  !&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  &gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, sans-serif; font-size: 13px; line-height: 18px; background-color: rgb(255, 255, 255); "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5749374620125186414-5246499953484002343?l=model-driven-blogging.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://model-driven-blogging.blogspot.com/feeds/5246499953484002343/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5749374620125186414&amp;postID=5246499953484002343' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/5246499953484002343'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/5246499953484002343'/><link rel='alternate' type='text/html' href='http://model-driven-blogging.blogspot.com/2011/09/collaborative-modeling-new-deal.html' title='Collaborative Modeling : the New Deal'/><author><name>Cédric Brun</name><uri>http://www.blogger.com/profile/17900773020510714946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_u5tMWln_Ie8/SRH3NgLBsHI/AAAAAAAAAAY/p_G-WB2DRaA/S220/author_photo.php.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-ugAFHv97sFk/TmddyN5VOFI/AAAAAAAAAmo/I-DDeEOKxd4/s72-c/lock.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5749374620125186414.post-7325068202475443747</id><published>2011-09-07T02:51:00.000-07:00</published><updated>2011-09-07T06:16:48.682-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='acceleo'/><title type='text'>Live request interpreter for Acceleo 3.2</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;a href="https://lh3.googleusercontent.com/-YpNF1xC-HSU/TmYW-TUK4wI/AAAAAAAAAmQ/yLVeiW3CnEI/acceleo-inter.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;/a&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;a href="https://lh3.googleusercontent.com/-YpNF1xC-HSU/TmYW-TUK4wI/AAAAAAAAAmQ/yLVeiW3CnEI/acceleo-inter.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;/a&gt;&lt;div&gt;&lt;a href="http://eclipsemde.blogspot.com/"&gt;Laurent&lt;/a&gt; is working on an &lt;b&gt;Interpreter View &lt;/b&gt;for Acceleo 3.2 &lt;i&gt;(coming soon)&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It feels good already, one can launch queries on any Editor or View, syntax higlighting works and so is completion proposals. Compilation errors are shown too. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It's the perfect companion for building your code generator, once you'll start using it you will wonder how you could live without it before&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); "&gt;&lt;span class="Apple-style-span" style="-webkit-text-decorations-in-effect: underline; "&gt;&lt;img src="https://lh3.googleusercontent.com/-YpNF1xC-HSU/TmYW-TUK4wI/AAAAAAAAAmQ/yLVeiW3CnEI/acceleo-inter.png" border="0" alt="" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 1013px; height: 620px; " /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); "&gt;&lt;span class="Apple-style-span" style="-webkit-text-decorations-in-effect: underline; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); "&gt;&lt;i&gt;By the way &lt;a href="http://eclipsemde.blogspot.com/"&gt;Laurent&lt;/a&gt; is going to give more detail about it quite soon..&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5749374620125186414-7325068202475443747?l=model-driven-blogging.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://model-driven-blogging.blogspot.com/feeds/7325068202475443747/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5749374620125186414&amp;postID=7325068202475443747' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/7325068202475443747'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/7325068202475443747'/><link rel='alternate' type='text/html' href='http://model-driven-blogging.blogspot.com/2011/09/live-request-interpreter-for-acceleo-32.html' title='Live request interpreter for Acceleo 3.2'/><author><name>Cédric Brun</name><uri>http://www.blogger.com/profile/17900773020510714946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_u5tMWln_Ie8/SRH3NgLBsHI/AAAAAAAAAAY/p_G-WB2DRaA/S220/author_photo.php.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='https://lh3.googleusercontent.com/-YpNF1xC-HSU/TmYW-TUK4wI/AAAAAAAAAmQ/yLVeiW3CnEI/s72-c/acceleo-inter.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5749374620125186414.post-1396678905777386614</id><published>2011-08-10T01:26:00.000-07:00</published><updated>2011-08-10T04:57:50.981-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='performance'/><category scheme='http://www.blogger.com/atom/ns#' term='obeo'/><category scheme='http://www.blogger.com/atom/ns#' term='emf compare'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><title type='text'>Measuring Performances</title><content type='html'>&lt;div style="text-align: left;"&gt;Performance is a feature, your users are needing it and so is your product. The code is changing, always, keeping track of the effect of those changes on the performance is not easy but it is as important as fixing bugs.&lt;/div&gt;&lt;br /&gt;You don't control what you don't measure. The Eclipse Platform built a performance measure framework for their own needs. The API is pretty simple but the implementation, on the other hand is quite complex, querying for instance system specific commands to retrieve the memory state depending on the platform. Launching a performance test built with this is not easy, neither is getting the result in a human readable way.&lt;br /&gt;&lt;br /&gt;Our needs were not as complex as the platform ones, we're not trying to measure the number of microseconds a Shell needs to be instantiated on every platform, we're not trying to launch thousands of performance tests for each of our component.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;We decided to write a small framework to measure performance, &lt;a href="https://github.com/pcdavid"&gt;Pierre-Charles&lt;/a&gt; did the first iteration and I'm applying it on EMF Compare now. This framework is using JUnit4 annotations so that one can easily transform an end user scenario into a performance test. First warning : this framework is&lt;b&gt; n&lt;span&gt;ot &lt;/span&gt;&lt;/b&gt;&lt;span style="font-weight:bold;"&gt;suited for micro-benchmarking at all !&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;Second warning : this framework is &lt;b&gt;not without overhead&lt;/b&gt; either, it's filling an EMF model with the measures (which might take a bit of memory if you write thousands of tests) .  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;On the other hand, the output of the test suite execution is this EMF model, allowing us to quite easily browse the results, generate reports,  and even more interestingly to &lt;b&gt;compare&lt;/b&gt; two snapshots ! It's completely standalone and is not requiring more than Java, Junit, and the EMF Core Runtime.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In a nutshell, this framework is convenient if you want to measure tasks in the order of seconds, and memory usage if you're looking at megabytes.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So far it's giving you &lt;b&gt;memory usage&lt;/b&gt; (through JMX) and &lt;b&gt;system time&lt;/b&gt; for each tests, it's running the tests several times with a "&lt;b&gt;warmup&lt;/b&gt;" phase launching the test but not measuring.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;A test looks like this :&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;img src="http://3.bp.blogspot.com/-FdR-1a_XLBs/TkJTMoasu4I/AAAAAAAAAiM/FtGlBhOvdE4/s400/perfsingletest.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5639161159894219650" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 90px; " /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); "&gt;The test class :&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;img src="http://3.bp.blogspot.com/-ARe4Rz2VSm8/TkJT2DHKmjI/AAAAAAAAAiU/2bcVvjdckR8/s400/perftestclass.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5639161871434684978" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 198px; " /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); "&gt;And the Test Suite :&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;img src="http://1.bp.blogspot.com/-fbmHXIyy4Lo/TkJUNDYsdKI/AAAAAAAAAic/j8WQElVfDkI/s400/perfsuite.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5639162266645197986" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 123px; " /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It's here if you want to give it a try, it's EPL, it's on github, feel free to fork it :&lt;/div&gt;&lt;div&gt;  &lt;a href="https://github.com/Obeo/fr.obeo.performance"&gt;https://github.com/Obeo/fr.obeo.performance&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5749374620125186414-1396678905777386614?l=model-driven-blogging.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://model-driven-blogging.blogspot.com/feeds/1396678905777386614/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5749374620125186414&amp;postID=1396678905777386614' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/1396678905777386614'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/1396678905777386614'/><link rel='alternate' type='text/html' href='http://model-driven-blogging.blogspot.com/2011/08/measuring-performances.html' title='Measuring Performances'/><author><name>Cédric Brun</name><uri>http://www.blogger.com/profile/17900773020510714946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_u5tMWln_Ie8/SRH3NgLBsHI/AAAAAAAAAAY/p_G-WB2DRaA/S220/author_photo.php.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-FdR-1a_XLBs/TkJTMoasu4I/AAAAAAAAAiM/FtGlBhOvdE4/s72-c/perfsingletest.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5749374620125186414.post-8579311473137419148</id><published>2011-06-21T07:01:00.000-07:00</published><updated>2011-06-21T07:52:46.945-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='compare'/><category scheme='http://www.blogger.com/atom/ns#' term='maven'/><title type='text'>Comparing pom.xml files while waiting for indigo</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;a href="http://4.bp.blogspot.com/-5nQA-qTWXQg/TgCvHkrPb0I/AAAAAAAAAgc/SUDKCj2fKEU/s1600/pomcomparison.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;/a&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;I know you're all waiting for the &lt;b&gt;Indigo&lt;/b&gt; release final bits ! These 0 and 1 are finding their way on the mirrors as I'm writing to make sure we'll get the smoothest release ever ;)&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So, you ends up waiting ... In the meantime, I'm going to show you a nice piece of technology which&lt;b&gt; is not going to be a new feature is Indigo&lt;/b&gt; ...  as it's been around a few years already ;)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Maybe you had a look at Maven/Tycho, it definitely gained momentum this year, it's completely based on these pom.xml&amp;lt; files. I used them a few times already and even with the &lt;a href="http://wiki.eclipse.org/Minerva"&gt;Minerva&lt;/a&gt; project (which helps a lot) I'm already in a love/hate relationship with those files. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;"When the wise man point at the model, the idiot looks at the XML "&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;Hopefully Maven is providing an XSD here  : &lt;a href="http://maven.apache.org/maven-v4_0_0.xsd"&gt;http://maven.apache.org/maven-v4_0_0.xsd&lt;/a&gt;  which you can use to initiate an EMF model :&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: center; "&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;a href="http://1.bp.blogspot.com/-sF9a9kfnpok/TgCr29k3AKI/AAAAAAAAAgE/PmMTzDU_y5w/s1600/pomecore.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;/a&gt;&lt;a href="http://4.bp.blogspot.com/-wScqYBvFleE/TgCr2lpHzzI/AAAAAAAAAf8/izHt7q-rq1A/s1600/pomxsd.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img src="http://4.bp.blogspot.com/-wScqYBvFleE/TgCr2lpHzzI/AAAAAAAAAf8/izHt7q-rq1A/s400/pomxsd.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5620681289264254770" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 349px; height: 400px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Starting from an XSD is never as cool as starting from Ecore, but at least the EMF project can provide you an automatic mapping. And here is the mapped Ecore :&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="http://4.bp.blogspot.com/-c7pPM4qm7B8/TgCr3YMQm9I/AAAAAAAAAgM/xGuvqhWKW_I/s400/pomdiag.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5620681302833404882" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 242px; " /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="http://1.bp.blogspot.com/-sF9a9kfnpok/TgCr29k3AKI/AAAAAAAAAgE/PmMTzDU_y5w/s400/pomecore.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5620681295688827042" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 299px; height: 397px; " /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If you want a cleaner model you can tweak the mapping.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Using the genmodel you'll get the corresponding Java code.  From now EMF is now able to load and save pom.xml files transparently and you can work with them using the Java API or the EMF reflective API. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;What for ? To leverage all the great components around here, for instance,  EMF &lt;b&gt;compare&lt;/b&gt; is then able to use this and compare the model and  not the XML serialization.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;a href="https://lh6.googleusercontent.com/-wCH4VazYN8k/TgCr3_1aVnI/AAAAAAAAAgU/MDg8ZX6GFFw/pomcomparison.png"&gt;&lt;img src="http://4.bp.blogspot.com/-5nQA-qTWXQg/TgCvHkrPb0I/AAAAAAAAAgc/SUDKCj2fKEU/s400/pomcomparison.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5620684879597367106" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 156px; " /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;Ok, It probably took you less than five minutes to read this, if you're not a Friend of Eclipse you still have to wait for the release. As a sidenote, it did not take me more than 5 minutes to prepare it  ;) &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If you did not checked out EMF&amp;amp;co, you should really have a look !&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5749374620125186414-8579311473137419148?l=model-driven-blogging.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://model-driven-blogging.blogspot.com/feeds/8579311473137419148/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5749374620125186414&amp;postID=8579311473137419148' title='2 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/8579311473137419148'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/8579311473137419148'/><link rel='alternate' type='text/html' href='http://model-driven-blogging.blogspot.com/2011/06/comparing-pomxml-files-while-waiting.html' title='Comparing pom.xml files while waiting for indigo'/><author><name>Cédric Brun</name><uri>http://www.blogger.com/profile/17900773020510714946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_u5tMWln_Ie8/SRH3NgLBsHI/AAAAAAAAAAY/p_G-WB2DRaA/S220/author_photo.php.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-wScqYBvFleE/TgCr2lpHzzI/AAAAAAAAAf8/izHt7q-rq1A/s72-c/pomxsd.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5749374620125186414.post-8627016920290556582</id><published>2011-05-06T05:24:00.000-07:00</published><updated>2011-05-06T05:50:34.521-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='amalgamation'/><category scheme='http://www.blogger.com/atom/ns#' term='acceleo'/><category scheme='http://www.blogger.com/atom/ns#' term='emf'/><title type='text'>Eclipse Modeling Package : SDK or not ?</title><content type='html'>The &lt;b&gt;indigo&lt;/b&gt; release will be the first year the Eclipse Modeling package is no more marked as "incubating".  As I'm checking the status of every component I'm wondering : do you, &lt;b&gt;end users of the package, want an SDK package or not ? &lt;/b&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I, as of now, considered that using &lt;i&gt;EMF&amp;amp;co&lt;/i&gt; without the SDK was a real pain, but maybe I'm not the best representative and I'd like your feedback. Especially considering that now with the provisionning capabilities of Eclipse we also have a third option : transforming your non-SDK to an SDK package in one click.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So here is the poll, it will stay online for one week and it needs like&lt;b&gt;, 2 secs, for you to fill :&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;iframe src="https://spreadsheets.google.com/embeddedform?formkey=dGtJdmdWRkNYdmFrMkFITzh6eTZ1TEE6MQ" width="760" height="953" frameborder="0" marginheight="0" marginwidth="0"&gt;Loading...&lt;/iframe&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;What are the implications ? Non-SDK package mean&lt;b&gt; smaller package&lt;/b&gt; (around 100mo probably) or package with &lt;b&gt;more modeling tools&lt;/b&gt;. On the other end SDK package means you can start using EMF&amp;amp;co as frameworks right away.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The poll will be on for a few days, go ahead and pick your choice !&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5749374620125186414-8627016920290556582?l=model-driven-blogging.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://model-driven-blogging.blogspot.com/feeds/8627016920290556582/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5749374620125186414&amp;postID=8627016920290556582' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/8627016920290556582'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/8627016920290556582'/><link rel='alternate' type='text/html' href='http://model-driven-blogging.blogspot.com/2011/05/eclipse-modeling-package-sdk-or-not.html' title='Eclipse Modeling Package : SDK or not ?'/><author><name>Cédric Brun</name><uri>http://www.blogger.com/profile/17900773020510714946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_u5tMWln_Ie8/SRH3NgLBsHI/AAAAAAAAAAY/p_G-WB2DRaA/S220/author_photo.php.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5749374620125186414.post-8297330572755532929</id><published>2011-03-03T05:48:00.000-08:00</published><updated>2011-03-03T07:44:18.920-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='eclipsecon'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='intent'/><title type='text'>Mylyn Intent @ EclipseCon 2011</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-fLhOij4VG7E/TW-xDrqilfI/AAAAAAAAAbs/l8WhZbJJt00/s1600/featurescapturewithsynchronized.png"&gt;&lt;br /&gt;&lt;/a&gt;In case you're not aware (yet ;) ) the &lt;b&gt;Mylyn Intent&lt;/b&gt; &lt;a href="http://www.eclipse.org/proposals/mylyn.docs.intent/"&gt;proposal&lt;/a&gt; is going forward, if everything goes well we'll be able to get a shiny git repository on Eclipse.org in the incoming weeks.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Mylyn Intent is going to help you &lt;b&gt;co-document&lt;/b&gt; and design things. As we consider that code activity is part of the design itself the tool is analysing your source code and projects to assist documenting it.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;What does "assist" mean in this context ?  &lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;At any time, you can synchronize your documentation artifacts regarding the corresponding models and source code. The really interesting things happens when it is not synchronized, you'll then be able to compare the&lt;b&gt; expected design&lt;/b&gt; versus the &lt;span style="font-weight: bold;"&gt;actual&lt;/span&gt; one and, either update the doc, or update the code depending on what makes sense.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The &lt;b&gt;design&lt;/b&gt; word has a broad meaning, and indeed under this term we are placing &lt;i&gt;anything that we do formalize through an Ecore model.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It really is up to your team, development process, here is an example of what you could want to capture if you develop Eclipse plugins :&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://3.bp.blogspot.com/-eWRpNigecMc/TW-v4_J6L8I/AAAAAAAAAbk/0vE-Ksl34-I/s1600/featurescapture.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 187px;" src="http://3.bp.blogspot.com/-eWRpNigecMc/TW-v4_J6L8I/AAAAAAAAAbk/0vE-Ksl34-I/s400/featurescapture.png" alt="" id="BLOGGER_PHOTO_ID_5579871856895864770" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-style: italic;"&gt;This one is pretty flexible and straighforward, you could come up with a slightly more complex model taking in account the versioning and change management aspects.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Basically this model capture every feature targeting either the end users or the developers.  For a developer feature one has to associate at least one corresponding API exported by a bundle, for each API's one has to associate the corresponding unit tests. For an end user feature an acceptance test is required and it should be associated to an interaction &lt;span style="font-style: italic;"&gt;(this part is left as an exercise to the reader ;)&lt;/span&gt; ).&lt;br /&gt;&lt;br /&gt;I already hear you screaming : &lt;span style="font-style: italic;"&gt;but you said it would be fun to document !? I'll have to fill all that information ?!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Don't panic.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-fLhOij4VG7E/TW-xDrqilfI/AAAAAAAAAbs/l8WhZbJJt00/s1600/featurescapturewithsynchronized.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 195px;" src="http://2.bp.blogspot.com/-fLhOij4VG7E/TW-xDrqilfI/AAAAAAAAAbs/l8WhZbJJt00/s400/featurescapturewithsynchronized.png" alt="" id="BLOGGER_PHOTO_ID_5579873140154209778" border="0" /&gt;&lt;/a&gt;With a blue highlight now : the things which are&lt;span style="font-weight: bold;"&gt; going to be synchronized&lt;/span&gt; with your development environment. What does that mean ? It means you won't have to dig yourself through the code finding unit tests, filling the bundle and exported packages,  &lt;span style="font-weight: bold;"&gt;Intent will do this for you &lt;/span&gt;and will be able to  quickly update your documentation. Furthermore, once you're back on coding, &lt;span style="font-weight: bold;"&gt;Intent will still work &lt;/span&gt;and check that your changes are in sync with the doc, telling you when it's not.&lt;br /&gt;&lt;br /&gt;The non-blue things, you'll have to describe those in your document, Intent really can't figure it out for you.&lt;br /&gt;&lt;br /&gt;Please note that this is an &lt;span style="font-weight: bold;"&gt;example&lt;/span&gt; of what can be achieved plugging a specific model and the corresponding synchronization code in Intent, you'll be able to plug-in your own very soon.&lt;br /&gt;&lt;br /&gt;Let's go back to the point, &lt;span style="font-weight: bold;"&gt;what do Intent offer&lt;/span&gt; then as a platform &lt;span style="font-weight: bold;"&gt;?&lt;/span&gt; What does &lt;span style="font-weight: bold;"&gt;Alice&lt;/span&gt; has to do with this &lt;span style="font-weight: bold;"&gt;?  How does she looks like ?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;You'll figure it out at &lt;a href="http://www.eclipsecon.org/2011/sessions/?page=sessions&amp;amp;id=2199"&gt;EclipseCon on Tuesday 22th, in Steven Creek at 11:10&lt;/a&gt;,  don't miss it.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5749374620125186414-8297330572755532929?l=model-driven-blogging.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://model-driven-blogging.blogspot.com/feeds/8297330572755532929/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5749374620125186414&amp;postID=8297330572755532929' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/8297330572755532929'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/8297330572755532929'/><link rel='alternate' type='text/html' href='http://model-driven-blogging.blogspot.com/2011/03/mylyn-intent-eclipsecon-2011.html' title='Mylyn Intent @ EclipseCon 2011'/><author><name>Cédric Brun</name><uri>http://www.blogger.com/profile/17900773020510714946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_u5tMWln_Ie8/SRH3NgLBsHI/AAAAAAAAAAY/p_G-WB2DRaA/S220/author_photo.php.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-eWRpNigecMc/TW-v4_J6L8I/AAAAAAAAAbk/0vE-Ksl34-I/s72-c/featurescapture.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5749374620125186414.post-5251315805370129051</id><published>2011-01-18T07:03:00.000-08:00</published><updated>2011-02-03T07:40:01.379-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='obeo'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='compare'/><category scheme='http://www.blogger.com/atom/ns#' term='acceleo'/><category scheme='http://www.blogger.com/atom/ns#' term='eef'/><title type='text'>2011 - The Thrill</title><content type='html'>&lt;div style="text-align: left;"&gt;&lt;i&gt;One- two-three,  one-two-three.. 2011 begins ... one-two-three..&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Is that &lt;b&gt;waltz&lt;/b&gt; ? Clearly 2011 is starting with another kind of tempo: a&lt;b&gt; &lt;a href="http://www.youtube.com/watch?v=iXksbb-BKpM"&gt;fast and dynamic one&lt;/a&gt; &lt;/b&gt;!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://fmadiot.blogspot.com/"&gt;Fred Madiot&lt;/a&gt; just joined Obeo, you probably already met him at an Eclipse Conference and know him through the Eclipse Modisco project. He is joining us to develop the business through the Obeo Designer and Obeo Agility offers, we're quite excited about this and happy to get him on board !&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Speaking about getting on board , we still have room for internships, if you're interested in working on innovative open-source projects focused on modeling and app modernizations,&lt;a href="http://www.obeo.fr/pages/recrutement/"&gt; feel free to contact us &lt;/a&gt;!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Now on to the 2011 subjects: as french we like to cook, here is a taste of what is going on :&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;hr /&gt;You already know we're involved in many Eclipse projects, 2011 will see the launch of a new project named &lt;b&gt;Intent&lt;/b&gt;&lt;a href="http://eclipse.org/proposals/mylyn.docs.intent/"&gt; [proposal]&lt;/a&gt; within the on-vitamin project &lt;b&gt;Mylyn&lt;/b&gt;. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="http://4.bp.blogspot.com/_u5tMWln_Ie8/TUrHtfr2pKI/AAAAAAAAAao/vZkrf-TjBxw/s320/intent.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5569483473610515618" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 320px; height: 122px; " /&gt;&lt;/div&gt;&lt;div&gt;This project is transforming the tedious and boring task of documenting software into a useful and easy process. You can have more information looking at the &lt;a href="https://www.eclipsecon.org/submissions/2011/view_talk.php?id=2199"&gt;[Intent EclipseCon Talk]&lt;/a&gt;, the &lt;a href="http://wiki.eclipse.org/Intent"&gt;[Wiki]&lt;/a&gt; (we're filling it up), &lt;a href="http://alagarde.tumblr.com/post/3064712740/intent-discovery-part-1-the-intents-behind"&gt;[blog post fromAlex]&lt;/a&gt; or simply asking in the &lt;a href="http://www.eclipse.org/forums/index.php?t=msg&amp;amp;th=203863&amp;amp;start=0&amp;amp;S=715fce3928bdde8ff68cbafb7f45f3e5"&gt;[Eclipse Forum]&lt;/a&gt;.&lt;/div&gt;&lt;hr /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;The &lt;b&gt;Acceleo&lt;/b&gt; Team is working restlessly on enhancing the tooling (which is already awesome by the way).  The &lt;a href="http://wiki.eclipse.org/Acceleo"&gt;wiki&lt;/a&gt; has been reworked, my favorite page is the&lt;a href="http://wiki.eclipse.org/Acceleo/Features"&gt; [Features Matrix]&lt;/a&gt; (credits to eGit release reviews docuware) which will give you a nice overview of what is available and how. If there is one page to look at, it's this one !&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="http://4.bp.blogspot.com/_u5tMWln_Ie8/TUrH2bBKhuI/AAAAAAAAAaw/z0OoHjdATuY/s320/acceleo-features.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5569483626976544482" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 320px; height: 81px; " /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;hr /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;You saw &lt;a href="http://eef-modeling.blogspot.com/2011/01/eef-09-new-cool-feature-part-i-eef.html"&gt;[EEF in action] &lt;/a&gt; lately, the 0.9.0 is in the process of being released (&lt;a href="http://www.eclipse.org/modeling/emft/downloads/?project=eef"&gt;currently in RC&lt;/a&gt;), this version will be the reference build for the upcoming Obeo Designer 5.0  !&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;img src="http://3.bp.blogspot.com/_u5tMWln_Ie8/TUrILMXGyFI/AAAAAAAAAbA/JIysDtr2Mwg/s320/eefdownload.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5569483983819294802" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 320px; height: 113px; " /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;/span&gt;  &lt;hr /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If you're monitoring &lt;span class="Apple-style-span"&gt;git&lt;/span&gt; in Eclipse, you might have seen the &lt;a href="http://git.eclipse.org/c/"&gt;general project rush&lt;/a&gt; on this new infrastructure ! EMF Compare successfully did the move, you can now easily &lt;a href="https://github.com/cbrun/emf-compare"&gt;[fork it]&lt;/a&gt;  and experiment at will !&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="http://1.bp.blogspot.com/_u5tMWln_Ie8/TUrIEBhYuOI/AAAAAAAAAa4/AAQjc5fJdRo/s320/github.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5569483860650539234" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 279px; height: 120px; " /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www2.imm.dtu.dk/~pk/"&gt;[Patrick]&lt;/a&gt; also joined the team and actively worked on getting a compare release which includes the MPatch support I blogged about &lt;a href="http://model-driven-blogging.blogspot.com/2010/10/model-comparison-patching-with-mpatch.html"&gt;[lately]&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Speaking about &lt;b&gt;compare&lt;/b&gt; you can expect user interface enhancements, merge stabilization and dedicated UML support for this year.  Coming soon in another blog post !&lt;hr /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;As I said &lt;b&gt;:&lt;/b&gt;&lt;/i&gt; &lt;b&gt;exciting times and dynamic tempo !&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5749374620125186414-5251315805370129051?l=model-driven-blogging.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://model-driven-blogging.blogspot.com/feeds/5251315805370129051/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5749374620125186414&amp;postID=5251315805370129051' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/5251315805370129051'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/5251315805370129051'/><link rel='alternate' type='text/html' href='http://model-driven-blogging.blogspot.com/2011/01/2011-thrill.html' title='2011 - The Thrill'/><author><name>Cédric Brun</name><uri>http://www.blogger.com/profile/17900773020510714946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_u5tMWln_Ie8/SRH3NgLBsHI/AAAAAAAAAAY/p_G-WB2DRaA/S220/author_photo.php.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_u5tMWln_Ie8/TUrHtfr2pKI/AAAAAAAAAao/vZkrf-TjBxw/s72-c/intent.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5749374620125186414.post-2817152112629443534</id><published>2010-10-28T00:53:00.000-07:00</published><updated>2010-10-28T02:00:31.950-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sequence diagram'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='obeo designer'/><title type='text'>Sequence Diagrams for your DSL's</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_u5tMWln_Ie8/TMk5IvJKvAI/AAAAAAAAAZo/6YpkwQoBct0/s1600/main.png"&gt;&lt;/a&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_u5tMWln_Ie8/TMkui6JcLSI/AAAAAAAAAZA/AWrfJ-jKimA/s1600/newui.png"&gt;&lt;/a&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;We're&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;working&lt;/span&gt; a lot on &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;Obeo&lt;/span&gt; Designer 5.0 - &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;release&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;planned&lt;/span&gt; for Q1 2011 ,  on &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;the&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;traceability&lt;/span&gt; support and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;the&lt;/span&gt;&lt;b&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;next-gen&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;model&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;to&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;text&lt;/span&gt; transformation language&lt;/b&gt;.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;Concerning&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;the&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;editing&lt;/span&gt; and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;diagraming&lt;/span&gt; support changes are more &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;subtles&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;though&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_18"&gt;powerful&lt;/span&gt;. &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_19"&gt;Here&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_20"&gt;is&lt;/span&gt; a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_21"&gt;quick&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_22"&gt;glimpse&lt;/span&gt; on &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_23"&gt;the&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_24"&gt;latest&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_25"&gt;milestone&lt;/span&gt; :&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_26"&gt;The&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_27"&gt;most&lt;/span&gt; visible change &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_28"&gt;is&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_29"&gt;the&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_30"&gt;work&lt;/span&gt; on &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_31"&gt;the&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_32"&gt;diagram&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_33"&gt;ergonomy&lt;/span&gt;, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_34"&gt;the&lt;/span&gt; user interface &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_35"&gt;has&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_36"&gt;been&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_37"&gt;cleanup&lt;/span&gt;, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_38"&gt;streamlined&lt;/span&gt; and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_39"&gt;features&lt;/span&gt; are more accessible. &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_40"&gt;The&lt;/span&gt; global toolbar &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_41"&gt;has&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_42"&gt;been&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_43"&gt;replaced&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_44"&gt;with&lt;/span&gt; a &lt;b&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_45"&gt;dedicated&lt;/span&gt; toolbar &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_46"&gt;embedded&lt;/span&gt;&lt;/b&gt; in &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_47"&gt;the&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_48"&gt;diagram&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_49"&gt;editor&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_50"&gt;providing&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_51"&gt;access&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_52"&gt;to&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_53"&gt;the&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_54"&gt;filters&lt;/span&gt; and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_55"&gt;the&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_56"&gt;enablement&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_57"&gt;of&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_58"&gt;layers&lt;/span&gt;. &lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;img src="http://3.bp.blogspot.com/_u5tMWln_Ie8/TMkui6JcLSI/AAAAAAAAAZA/AWrfJ-jKimA/s400/newui.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5533004794460646690" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 217px; " /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); "&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_59"&gt;The&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_60"&gt;contextual&lt;/span&gt; actions have &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_61"&gt;been&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_62"&gt;re-organized&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_63"&gt;too&lt;/span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;img src="http://4.bp.blogspot.com/_u5tMWln_Ie8/TMkusyn5QMI/AAAAAAAAAZI/g9xweWioBgw/s400/new_ui_contextmenu.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5533004964239589570" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 252px; " /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="color:#0000EE;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://2.bp.blogspot.com/_u5tMWln_Ie8/TMkvNxSHtVI/AAAAAAAAAZQ/69ewVy0t20I/s1600/quickoutline.png"&gt;&lt;img src="http://2.bp.blogspot.com/_u5tMWln_Ie8/TMkvNxSHtVI/AAAAAAAAAZQ/69ewVy0t20I/s400/quickoutline.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5533005530815509842" style="float: right; margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 10px; cursor: pointer; width: 301px; height: 279px; " /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_64"&gt;you're&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_65"&gt;used&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_66"&gt;to&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_67"&gt;nice&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_68"&gt;Eclipse&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_69"&gt;editors&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_70"&gt;you'll&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_71"&gt;be&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_72"&gt;happy&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_73"&gt;to&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_74"&gt;learn&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_75"&gt;that&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_76"&gt;the&lt;/span&gt; "&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_77"&gt;Quick&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_78"&gt;Outline&lt;/span&gt;" (&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_79"&gt;summoned&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_80"&gt;thanks&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_81"&gt;to&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_82"&gt;CTRL&lt;/span&gt;+O) &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_83"&gt;is&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_84"&gt;available&lt;/span&gt; in &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_85"&gt;the&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_86"&gt;diagrams&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_87"&gt;now&lt;/span&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_88"&gt;Just&lt;/span&gt; type in &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_89"&gt;any&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_90"&gt;word&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_91"&gt;here&lt;/span&gt;, and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_92"&gt;the&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_93"&gt;corresponding&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_94"&gt;model&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_95"&gt;element&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_96"&gt;will&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_97"&gt;be&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_98"&gt;revealed&lt;/span&gt; in &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_99"&gt;your&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_100"&gt;diagram&lt;/span&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;More &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_101"&gt;interesting&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_102"&gt;is&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_103"&gt;the&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_104"&gt;redesigned&lt;/span&gt; support for &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_105"&gt;diagrams&lt;/span&gt; !  &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_106"&gt;You&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_107"&gt;can&lt;/span&gt;, for &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_108"&gt;any&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_109"&gt;kind&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_110"&gt;of&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_111"&gt;model&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_112"&gt;being&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_113"&gt;UML&lt;/span&gt; or &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_114"&gt;your&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_115"&gt;own&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_116"&gt;DSL&lt;/span&gt;, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_117"&gt;specify&lt;/span&gt; and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_118"&gt;leverage&lt;/span&gt; a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_119"&gt;diagram&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_120"&gt;editor&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_121"&gt;keeping&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_122"&gt;the&lt;/span&gt; &lt;b&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_123"&gt;model&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_124"&gt;sequence&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_125"&gt;order&lt;/span&gt; in &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_126"&gt;sync&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_127"&gt;with&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_128"&gt;the&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_129"&gt;diagram&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_130"&gt;ordering&lt;/span&gt;.&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;img src="http://1.bp.blogspot.com/_u5tMWln_Ie8/TMkwGP0laYI/AAAAAAAAAZY/Px1umo3Qgzg/s400/sequence-global.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5533006501085800834" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 248px; " /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); "&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_131"&gt;you&lt;/span&gt; have &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_132"&gt;the&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_133"&gt;same&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_134"&gt;level&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_135"&gt;of&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_136"&gt;customization&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_137"&gt;that&lt;/span&gt; for &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_138"&gt;the&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_139"&gt;other&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_140"&gt;kind&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_141"&gt;of&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_142"&gt;diagrams&lt;/span&gt;, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_143"&gt;you&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_144"&gt;can&lt;/span&gt; change &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_145"&gt;the&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_146"&gt;shapes&lt;/span&gt;, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_147"&gt;colors&lt;/span&gt; &lt;b&gt;and &lt;/b&gt;use &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_148"&gt;the&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_149"&gt;sequence&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_150"&gt;diagram&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_151"&gt;constructions&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_152"&gt;like&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_153"&gt;lifelines&lt;/span&gt;, messages and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_154"&gt;executions&lt;/span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); "&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_155"&gt;Here&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_156"&gt;we're&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_157"&gt;not&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_158"&gt;using&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_159"&gt;UML&lt;/span&gt; but &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_160"&gt;our&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_161"&gt;own&lt;/span&gt; "&lt;i&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_162"&gt;interactions&lt;/span&gt;&lt;/i&gt;" &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_163"&gt;DSL&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_164"&gt;which&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_165"&gt;refers&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_166"&gt;to&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_167"&gt;another&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_168"&gt;DSL&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_169"&gt;describing&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_170"&gt;domain&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_171"&gt;entities&lt;/span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); "&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;img src="http://1.bp.blogspot.com/_u5tMWln_Ie8/TMkwiZlc4YI/AAAAAAAAAZg/SgAXf7tyL9A/s400/sea_sequence_diag.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5533006984743018882" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 236px; " /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;As a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_172"&gt;sidenote&lt;/span&gt;, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_173"&gt;you&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_174"&gt;can&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_175"&gt;now&lt;/span&gt; have a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_176"&gt;color&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_177"&gt;definition&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_178"&gt;which&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_179"&gt;is&lt;/span&gt;&lt;b&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_180"&gt;interpolated&lt;/span&gt; on a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_181"&gt;color&lt;/span&gt; palette&lt;/b&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_182"&gt;depending&lt;/span&gt; on &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_183"&gt;some&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_184"&gt;model&lt;/span&gt; computation. &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_185"&gt;Here&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_186"&gt;we&lt;/span&gt; have a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_187"&gt;nice&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_188"&gt;shade&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_189"&gt;of&lt;/span&gt; green &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_190"&gt;depending&lt;/span&gt; on &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_191"&gt;the&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_192"&gt;level&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_193"&gt;of&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_194"&gt;execution&lt;/span&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_195"&gt;nutshell&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_196"&gt;this&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_197"&gt;new&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_198"&gt;release&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_199"&gt;will&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_200"&gt;bring&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_201"&gt;you&lt;/span&gt; &lt;a href="http://model-driven-blogging.blogspot.com/2009/09/having-more-control.html"&gt;more &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_202"&gt;control&lt;/span&gt;&lt;/a&gt;, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_203"&gt;to&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_204"&gt;the&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_205"&gt;visual&lt;/span&gt; aspect and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_206"&gt;interactions&lt;/span&gt; on &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_207"&gt;the&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_208"&gt;tooling&lt;/span&gt;,  &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_209"&gt;the&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_210"&gt;ability&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_211"&gt;to&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_212"&gt;define&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_213"&gt;sequence&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_214"&gt;diagrams&lt;/span&gt;, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_215"&gt;still&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_216"&gt;keeping&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_217"&gt;the&lt;/span&gt; &lt;b&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_218"&gt;complexity&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_219"&gt;to&lt;/span&gt; a minimum&lt;/b&gt; : no &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_220"&gt;deployement&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_221"&gt;requirement&lt;/span&gt;, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_222"&gt;one&lt;/span&gt; file &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_223"&gt;describes&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_224"&gt;the&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_225"&gt;whole&lt;/span&gt; design &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_226"&gt;environment&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_227"&gt;which&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_228"&gt;you&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_229"&gt;can&lt;/span&gt; test and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_230"&gt;try&lt;/span&gt; &lt;b&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_231"&gt;without&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_232"&gt;even&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_233"&gt;starting&lt;/span&gt; an &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_234"&gt;Eclipse&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_235"&gt;runtime&lt;/span&gt;&lt;/b&gt;. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_236"&gt;It&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_237"&gt;doesn't&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_238"&gt;mean&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_239"&gt;you&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_240"&gt;can't&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_241"&gt;deploy&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_242"&gt;your&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_243"&gt;environment&lt;/span&gt; as a set &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_244"&gt;of&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_245"&gt;plugins&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_246"&gt;with&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_247"&gt;proper&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_248"&gt;dependency&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_249"&gt;checking&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_250"&gt;thanks&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_251"&gt;to&lt;/span&gt; P2, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_252"&gt;it's&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_253"&gt;just&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_254"&gt;that&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_255"&gt;you&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_256"&gt;don't&lt;/span&gt; have &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_257"&gt;too&lt;/span&gt;.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;If &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_258"&gt;you&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_259"&gt;don't&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_260"&gt;know&lt;/span&gt; about &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_261"&gt;Obeo&lt;/span&gt; Designer and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_262"&gt;you&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_263"&gt;want&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_264"&gt;to&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_265"&gt;setup&lt;/span&gt; a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_266"&gt;dedicated&lt;/span&gt; design + &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_267"&gt;transformation&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_268"&gt;toolchain&lt;/span&gt; for &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_269"&gt;your&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_270"&gt;domain&lt;/span&gt;, &lt;a href="http://www.obeo.fr/pages/obeo-designer/"&gt;have a look &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_271"&gt;here&lt;/span&gt;&lt;/a&gt;.&lt;/div&gt;&lt;br /&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_272"&gt;Here&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_273"&gt;is&lt;/span&gt; a flash &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_274"&gt;demo&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_275"&gt;being&lt;/span&gt; a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_276"&gt;recap&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_277"&gt;of&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_278"&gt;these&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_279"&gt;features&lt;/span&gt; :&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;embed src="https://sites.google.com/site/modeldrivenblogging/sequence-DSL-andUIChanges.swf" width="959" height="758" quality="low" loop="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"&gt;&lt;/embed&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5749374620125186414-2817152112629443534?l=model-driven-blogging.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://model-driven-blogging.blogspot.com/feeds/2817152112629443534/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5749374620125186414&amp;postID=2817152112629443534' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/2817152112629443534'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/2817152112629443534'/><link rel='alternate' type='text/html' href='http://model-driven-blogging.blogspot.com/2010/10/sequence-diagrams-for-your-dsls.html' title='Sequence Diagrams for your DSL&apos;s'/><author><name>Cédric Brun</name><uri>http://www.blogger.com/profile/17900773020510714946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_u5tMWln_Ie8/SRH3NgLBsHI/AAAAAAAAAAY/p_G-WB2DRaA/S220/author_photo.php.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_u5tMWln_Ie8/TMkui6JcLSI/AAAAAAAAAZA/AWrfJ-jKimA/s72-c/newui.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5749374620125186414.post-8443724993412705362</id><published>2010-10-13T05:25:00.000-07:00</published><updated>2010-10-13T05:28:41.528-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='compare'/><title type='text'>Model Comparison  : Patching with MPatch</title><content type='html'>&lt;i&gt;The following message is posted on this blog on behalf of Patrick Könemann&lt;/i&gt;&lt;br /&gt;&lt;img src="http://modeldiff.imm.dtu.dk/modeldiff/images/delta.png" alt="" width="88" height="76" style="float: right; padding: 10px;" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Cédric already announced it two weeks ago: &lt;b&gt;MPatch is integrated into EMF Compare!&lt;/b&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;i&gt;Did you ever want to transfer changes from one model to another?&lt;/i&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;i&gt;Or do you frequently perform the same changes on your models?&lt;/i&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;MPatch is a technology that stores model changes as self-contained artifacts, just like patches, that are also applicable to other models! Let me show an example of how MPatch works:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;This is just a simple model, a base version on the left and a modified version on the right.&lt;br /&gt;Modeled with the IBM Rational Software Architect, but any kind of EMF model is supported.&lt;br /&gt;The changes are highlighted: 3 deleted attributes, 1 updated attribute, 1 new class, 3 new generalizations.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p align="center"&gt;&lt;img src="http://modeldiff.imm.dtu.dk/modeldiff/images/stories/tutorial2/modela.png" alt="" /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;EMF Compare is a nice tool for calculating such changes. The result is shown below.&lt;br /&gt;All changes are nicely highlighted in the treeviews and one can browse through them.&lt;br /&gt;This is where &lt;b&gt;MPatch&lt;/b&gt; comes into play: the &lt;b&gt;export&lt;/b&gt; menu lists a new option!&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p align="center"&gt;&lt;img src="http://modeldiff.imm.dtu.dk/modeldiff/images/stories/tutorial2/emfcompare.png" alt="" /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;An export wizard is started that guides the user through the &lt;b&gt;MPatch&lt;/b&gt; creation task.&lt;br /&gt;In the end, the changes are stored in a file, &lt;b&gt;extract_id.mpatch&lt;/b&gt; for example.&lt;br /&gt;This file can now be applied to other models, even if &lt;b&gt;their contents differ&lt;/b&gt;!&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p align="center"&gt;&lt;img src="http://modeldiff.imm.dtu.dk/modeldiff/images/stories/tutorial2/apply.png" alt="" /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;The model below is a different one -- again we want to extract the id attribute into a common superclass.&lt;br /&gt;However, the attributes, the classes, and even the number of attributes and classes differ!&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p align="center"&gt;&lt;img src="http://modeldiff.imm.dtu.dk/modeldiff/images/stories/tutorial2/modelb.png" alt="" /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Let's see how &lt;b&gt;MPatch&lt;/b&gt; handles the situation.&lt;br /&gt;Selecting &lt;i&gt;Apply MPatch&lt;/i&gt; triggers a wizard with the same name.&lt;br /&gt;The crucial part is the so-called &lt;i&gt;resolution of symbolic references&lt;/i&gt; -- they are responsible for selecting the proper model elements of your target model.&lt;br /&gt;Let's have a closer look:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p align="center"&gt;&lt;img src="http://modeldiff.imm.dtu.dk/modeldiff/images/stories/tutorial2/resolve.png" alt="" width="660" height="388" /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;The first change is not applicable because there is no attribute called &lt;i&gt;Title&lt;/i&gt; -- ignore this!&lt;br /&gt;&lt;/li&gt;&lt;li&gt;The second change is applicable because a similarly named package (&lt;i&gt;data&lt;/i&gt; vs. &lt;i&gt;customerdata&lt;/i&gt;) is found -- ok.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;The third change is applicable because I manually selected &lt;i&gt;Contract&lt;/i&gt; and &lt;i&gt;Invoice&lt;/i&gt; -- ok.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;The fourth change is applicable because similar named attributes (&lt;i&gt;id&lt;/i&gt; vs. &lt;i&gt;inv_id / con_id&lt;/i&gt;) are found -- ok.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Following the wizard to its end updates the given model and this is the result:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p align="center"&gt;&lt;img src="http://modeldiff.imm.dtu.dk/modeldiff/images/stories/tutorial2/applied.png" alt="" /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;To wrap up, an &lt;b&gt;Mpatch&lt;/b&gt; is not only a self-contained patch for models, it is even able to make the changes applicable to different models!&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;b&gt;Installation instructions&lt;/b&gt; and a lot more information on the project website: &lt;a href="http://modeldiff.imm.dtu.dk/"&gt;http://modeldiff.imm.dtu.dk&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5749374620125186414-8443724993412705362?l=model-driven-blogging.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://model-driven-blogging.blogspot.com/feeds/8443724993412705362/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5749374620125186414&amp;postID=8443724993412705362' title='5 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/8443724993412705362'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/8443724993412705362'/><link rel='alternate' type='text/html' href='http://model-driven-blogging.blogspot.com/2010/10/model-comparison-patching-with-mpatch.html' title='Model Comparison  : Patching with MPatch'/><author><name>Cédric Brun</name><uri>http://www.blogger.com/profile/17900773020510714946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_u5tMWln_Ie8/SRH3NgLBsHI/AAAAAAAAAAY/p_G-WB2DRaA/S220/author_photo.php.jpeg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5749374620125186414.post-6136697458246759714</id><published>2010-10-01T01:17:00.001-07:00</published><updated>2010-10-01T08:09:09.742-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='obeo'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='acceleo'/><title type='text'>Autumn is a second spring when every leaf is a flower</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_u5tMWln_Ie8/TKXrN8A8EJI/AAAAAAAAAY4/d_Iqpg13Gnc/s1600/query.png"&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_u5tMWln_Ie8/TKXpeGxOAFI/AAAAAAAAAYw/M0nz1eAK3e0/s1600/quickfix.png"&gt;&lt;/a&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_u5tMWln_Ie8/TKWfZNHYO2I/AAAAAAAAAYQ/ClulJG9gKZo/s1600/internship-cake.png"&gt;&lt;/a&gt;Maybe twitter gives a false impression that you're keeping the users informed of what is going on. False because &lt;b&gt;140 chars can't be enough &lt;/b&gt;!&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Many things are keeping the Obeo guys busy, from the Eclipse and open-source involvement to the incubation of highly innovative products you'll love while still providing the best service to our customers looking for expertise :)  .&lt;/div&gt;&lt;div&gt;Oh, and we provided the first Helios service release for Compare, Acceleo, EEF, ATL and much more, go &lt;a href="http://www.eclipse.org/modeling/amalgam/"&gt;get the modeling package   &lt;/a&gt;!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Summer is an internship time in France,  and for us every internship's  ultimate goal is to hire another great person. I can say we did succeed this year !  Expect even more great contributions,  user experience polishing and features for Indigo !!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Furthermore the newcomers completely understood the &lt;b&gt;chocolate-commit&lt;/b&gt; spirit ...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;img src="http://4.bp.blogspot.com/_u5tMWln_Ie8/TKWfZNHYO2I/AAAAAAAAAYQ/ClulJG9gKZo/s320/internship-cake.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5522995773405936482" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 320px; height: 240px; " /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;No doubt you'll hear about those guys at some point, &lt;a href="http://sbegaudeau.tumblr.com/"&gt;Stéphane already started to blog&lt;/a&gt;...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Speaking about Indigo, we wrote down a "&lt;a href="http://wiki.eclipse.org/EMF_Compare/Roadmap"&gt;long term roadmap&lt;/a&gt;" for EMF Compare on the wiki, feel free to have a look ! Coming soon : more information about the&lt;b&gt; MPatch contribution recently integrated in EMF Compare.&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Ok, enough teasing, back to code generation. In case you did not noticed Acceleo 3 provides one of the most compelling editing tooling you can get with the Eclipse platform. Using the JDT I often find myself thinking "oh, they did though about this ! great !" :  you'll often get the same feeling with Acceleo 3...&lt;/div&gt;&lt;div&gt;Let's try with an example: it's often useful to be able to call Java logic directly from a template.  If you want to do so, start by writting down this java logic.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://2.bp.blogspot.com/_u5tMWln_Ie8/TKXofHR2F8I/AAAAAAAAAYg/KpcYzSm1yqU/s1600/javaservice.png"&gt;&lt;img src="http://2.bp.blogspot.com/_u5tMWln_Ie8/TKXofHR2F8I/AAAAAAAAAYg/KpcYzSm1yqU/s400/javaservice.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5523076139267266498" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 135px; " /&gt;&lt;/a&gt;Then call it from your template, obviously it's not going to work as is. Here we're calling the "getJavaCompatibleName" method on an &lt;b&gt;EClass, &lt;/b&gt;but this method is not existing on this type. Acceleo provides a mechanism to call Java logic associated with a given meta-class: the first parameter of the method have to be of the type of the extended meta-class  and Acceleo will automatically transform a &lt;i&gt;myInstance.myMethod()&lt;/i&gt; call to a &lt;i&gt;SomeClass.myMethod(myInstance)&lt;/i&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If you want to try that, call the quickfix menu on the compilation error with CTRL+1 :&lt;/div&gt;&lt;div&gt;&lt;a href="http://2.bp.blogspot.com/_u5tMWln_Ie8/TKXpeGxOAFI/AAAAAAAAAYw/M0nz1eAK3e0/s1600/quickfix.png"&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://2.bp.blogspot.com/_u5tMWln_Ie8/TKXpeGxOAFI/AAAAAAAAAYw/M0nz1eAK3e0/s1600/quickfix.png"&gt;&lt;img src="http://2.bp.blogspot.com/_u5tMWln_Ie8/TKXpeGxOAFI/AAAAAAAAAYw/M0nz1eAK3e0/s400/quickfix.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5523077221462179922" style="text-align: left;display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; cursor: pointer; width: 400px; height: 242px; " /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: center; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;a href="http://3.bp.blogspot.com/_u5tMWln_Ie8/TKXoYaAiziI/AAAAAAAAAYY/A9HBc5wJQ3E/s1600/javaservice.png"&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Choosing the &lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;"Create Java Service Wrapper"&lt;/span&gt; quick fix will add a new query to your template :&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;img src="http://3.bp.blogspot.com/_u5tMWln_Ie8/TKXrN8A8EJI/AAAAAAAAAY4/d_Iqpg13Gnc/s400/query.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5523079142720671890" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 18px; " /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="color:#0000EE;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;And your done ! &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5749374620125186414-6136697458246759714?l=model-driven-blogging.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://model-driven-blogging.blogspot.com/feeds/6136697458246759714/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5749374620125186414&amp;postID=6136697458246759714' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/6136697458246759714'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/6136697458246759714'/><link rel='alternate' type='text/html' href='http://model-driven-blogging.blogspot.com/2010/10/autumn-is-second-spring-when-every-leaf.html' title='Autumn is a second spring when every leaf is a flower'/><author><name>Cédric Brun</name><uri>http://www.blogger.com/profile/17900773020510714946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_u5tMWln_Ie8/SRH3NgLBsHI/AAAAAAAAAAY/p_G-WB2DRaA/S220/author_photo.php.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_u5tMWln_Ie8/TKWfZNHYO2I/AAAAAAAAAYQ/ClulJG9gKZo/s72-c/internship-cake.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5749374620125186414.post-2848207392834697323</id><published>2010-07-27T06:09:00.001-07:00</published><updated>2010-07-27T07:14:35.532-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='community'/><category scheme='http://www.blogger.com/atom/ns#' term='helios'/><category scheme='http://www.blogger.com/atom/ns#' term='acceleo'/><title type='text'>Eclipse Helios - a whole year of goodness</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_u5tMWln_Ie8/TE7igFeOPSI/AAAAAAAAAV4/7khFDonGUUA/s1600/hudson.png"&gt;&lt;/a&gt;&lt;div style="text-align: center;"&gt;Eclipse Helios is a release, but it's also a complete development cycle in a global and distributed team of commiters. Since I choose &lt;a href="http://model-driven-blogging.blogspot.com/2010/06/helios-review-in-pictures.html"&gt;3 features&lt;/a&gt; I especially liked in &lt;b&gt;Helios&lt;/b&gt; this kept bugging me : what is &lt;i&gt;Helios&lt;/i&gt; to me ?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Helios will have its place in my memory, not the bits themselves but good things we had &lt;b&gt;as a community&lt;/b&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1 - The Acceleo Community joins Eclipse.org and starts by using &lt;b&gt;black magic &lt;/b&gt;to build bits&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_u5tMWln_Ie8/SqjIhFCOyQI/AAAAAAAAALI/_vSaQyCXIds/s1600-h/acceleo99999.png"&gt;&lt;img style="text-align: left;margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; display: block; cursor: pointer; width: 400px; height: 206px; " src="http://1.bp.blogspot.com/_u5tMWln_Ie8/SqjIhFCOyQI/AAAAAAAAALI/_vSaQyCXIds/s400/acceleo99999.png" alt="" id="BLOGGER_PHOTO_ID_5379770225506830594" border="0" /&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); "&gt;It's just the begining of this move but so far it went pretty well :)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;span class="Apple-style-span"  style="color:#000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;img src="http://4.bp.blogspot.com/_u5tMWln_Ie8/TE7e3tid-UI/AAAAAAAAAVo/jqZuuaSXZfs/s320/slides-7.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5498577243764291906" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 320px; height: 240px; " /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;2 - &lt;a href="http://www.eclipsecon.org/summiteurope2010/"&gt;Eclipse Summit Europe&lt;/a&gt; is the best Eclipse conference to meet friends&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_u5tMWln_Ie8/SSw4UXRKL4I/AAAAAAAAACo/fotIk7FwEOA/s1600-h/lastbeer_1.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 267px;" src="http://2.bp.blogspot.com/_u5tMWln_Ie8/SSw4UXRKL4I/AAAAAAAAACo/fotIk7FwEOA/s400/lastbeer_1.jpg" alt="" id="BLOGGER_PHOTO_ID_5272651186238533506" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;3- The dreaded diamonds of the Simultaneous Release are still haunting my dreams...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;img src="http://1.bp.blogspot.com/_u5tMWln_Ie8/TE7h0CtYxpI/AAAAAAAAAVw/INgqIltP0Ww/s400/diamonds.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5498580479262639762" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 153px; " /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;4- Our friend Hudson is now serving way more projects,  but not always happily.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;img src="http://3.bp.blogspot.com/_u5tMWln_Ie8/TE7igFeOPSI/AAAAAAAAAV4/7khFDonGUUA/s320/hudson.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5498581235918585122" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 320px; height: 161px; " /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;5 - The Foundation keeps moving things forward&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://1.bp.blogspot.com/_u5tMWln_Ie8/TE7kSmzqZeI/AAAAAAAAAWA/4AyPWghvJFY/s1600/marketplace.png"&gt;&lt;img src="http://1.bp.blogspot.com/_u5tMWln_Ie8/TE7kSmzqZeI/AAAAAAAAAWA/4AyPWghvJFY/s320/marketplace.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5498583203371967970" style="float: left; margin-top: 0px; margin-right: 10px; margin-bottom: 10px; margin-left: 0px; cursor: pointer; width: 278px; height: 87px; " /&gt;&lt;/a&gt;&lt;a href="http://marketplace.eclipse.org/"&gt; &lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_u5tMWln_Ie8/TE7km8SuqSI/AAAAAAAAAWI/7sqZDyvEukY/s1600/labs.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 320px; height: 108px;" src="http://2.bp.blogspot.com/_u5tMWln_Ie8/TE7km8SuqSI/AAAAAAAAAWI/7sqZDyvEukY/s320/labs.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5498583552736799010" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_u5tMWln_Ie8/TE7kSmzqZeI/AAAAAAAAAWA/4AyPWghvJFY/s1600/marketplace.png"&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;img src="http://2.bp.blogspot.com/_u5tMWln_Ie8/TE7lTNChcaI/AAAAAAAAAWQ/P9fxtY1_ZcE/s320/git.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5498584313146470818" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 320px; height: 142px; " /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="color:#0000EE;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;6 - &lt;a href="http://wiki.eclipse.org/EMF_Compare"&gt;EMF Compare&lt;/a&gt; rocked at &lt;a href="http://model-driven-blogging.blogspot.com/2010/03/diff-merge-and-patch-your-models-with.html"&gt;Eclipse Con 2010&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://3.bp.blogspot.com/_u5tMWln_Ie8/S6JBm2VTvOI/AAAAAAAAARo/NZXrdoHBqAY/s1600-h/slide3.png"&gt;&lt;img src="http://3.bp.blogspot.com/_u5tMWln_Ie8/S6JBm2VTvOI/AAAAAAAAARo/NZXrdoHBqAY/s320/slide3.png" alt="" id="BLOGGER_PHOTO_ID_5449990634747444450" border="0" style="float: left; margin-top: 0pt; margin-right: 10px; margin-bottom: 10px; margin-left: 0pt; cursor: pointer; width: 320px; height: 239px; " /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_u5tMWln_Ie8/S6JCMtB5zlI/AAAAAAAAASI/lOJbc0uglPw/s1600-h/slide7.png"&gt;&lt;img src="http://4.bp.blogspot.com/_u5tMWln_Ie8/S6JCMtB5zlI/AAAAAAAAASI/lOJbc0uglPw/s320/slide7.png" alt="" id="BLOGGER_PHOTO_ID_5449991285085163090" border="0" style="float: right; margin-top: 0pt; margin-right: 0pt; margin-bottom: 10px; margin-left: 10px; cursor: pointer; width: 320px; height: 239px; " /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Last but not least, this Helios cycle was filled with more interactions with end-users and adopters leading to nice enhancements in Eclipse as a whole, &lt;b&gt;thanks for your help !&lt;/b&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5749374620125186414-2848207392834697323?l=model-driven-blogging.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://model-driven-blogging.blogspot.com/feeds/2848207392834697323/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5749374620125186414&amp;postID=2848207392834697323' title='1 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/2848207392834697323'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/2848207392834697323'/><link rel='alternate' type='text/html' href='http://model-driven-blogging.blogspot.com/2010/07/eclipse-helios-whole-year-of-goodness.html' title='Eclipse Helios - a whole year of goodness'/><author><name>Cédric Brun</name><uri>http://www.blogger.com/profile/17900773020510714946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_u5tMWln_Ie8/SRH3NgLBsHI/AAAAAAAAAAY/p_G-WB2DRaA/S220/author_photo.php.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_u5tMWln_Ie8/SqjIhFCOyQI/AAAAAAAAALI/_vSaQyCXIds/s72-c/acceleo99999.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5749374620125186414.post-795928650798672137</id><published>2010-06-28T05:31:00.000-07:00</published><updated>2010-07-05T08:51:45.448-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='amalgamation'/><category scheme='http://www.blogger.com/atom/ns#' term='compare'/><category scheme='http://www.blogger.com/atom/ns#' term='acceleo'/><title type='text'>3 Good Reasons to use the Helios Modeling Package</title><content type='html'>&lt;div style="text-align: left;"&gt;Now that the entire world noticed that I&lt;a href="http://www.obeo.fr/download/eef/samples/wc2010/results.html"&gt; don't know even one thing about soccer&lt;/a&gt; and I'm &lt;a href="http://model-driven-blogging.blogspot.com/2010/06/forecasts-comparison-for-world.html"&gt;even trying to cheat&lt;/a&gt;, I should get back in sharing what I understand instead of those silly forecasts.&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Helios has been out for a little while now, the mediatic storm is pretty much gone and it's a good time for me to have a look back. &lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;This year one of my goal was : "&lt;i&gt;I want to transform the Modeling Package in a product which I would use myself". &lt;/i&gt; I've been using it quite extensively lately and I'm pretty happy with the results, the Galileo package is far from being usable but the Helios version is just great :)&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;b&gt;Why ? &lt;/b&gt;&lt;i&gt;a few reasons...&lt;/i&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_u5tMWln_Ie8/TCmo0WRlFMI/AAAAAAAAAU4/kjoQ1wkwZaQ/s1600/colored_generatedcode.png"&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;/span&gt;&lt;div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span"  style="color:#0000EE;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;1.  because&lt;/span&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt; it's including hidden EMF goodness !&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_u5tMWln_Ie8/TCmorb-s80I/AAAAAAAAAUw/VHo7TAdbtwI/s1600/filter_generatedcode.png"&gt;&lt;img src="http://1.bp.blogspot.com/_u5tMWln_Ie8/TCmorb-s80I/AAAAAAAAAUw/VHo7TAdbtwI/s400/filter_generatedcode.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5488103085126251330" style="float: right; margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 10px; cursor: pointer; width: 315px; height: 400px; " /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;EMF generates code... which is good as any code you don't need to write means less bugs. But sometimes you don't even want to see that code !&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If so, you're lucky, there is a&lt;b&gt; specific filter for your workspace !&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;And the integration goes even further, code you manually changed is &lt;b&gt;highlighted with different colors&lt;/b&gt; !&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://2.bp.blogspot.com/_u5tMWln_Ie8/TCmo0WRlFMI/AAAAAAAAAU4/kjoQ1wkwZaQ/s1600/colored_generatedcode.png"&gt;&lt;img src="http://2.bp.blogspot.com/_u5tMWln_Ie8/TCmo0WRlFMI/AAAAAAAAAU4/kjoQ1wkwZaQ/s400/colored_generatedcode.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5488103238213637314" style="float: left; margin-top: 0px; margin-right: 10px; margin-bottom: 10px; margin-left: 0px; cursor: pointer; width: 400px; height: 144px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Oh, and you can &lt;b&gt;compare and merge &lt;/b&gt;any kind of emf model, starting from the Ecore ones.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;img src="http://3.bp.blogspot.com/_u5tMWln_Ie8/TCmpBnAZWJI/AAAAAAAAAVA/Y-7EfM3Ujvc/s400/team_support.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5488103466043267218" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 271px; " /&gt;&lt;/span&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;&lt;b&gt;2. It provides Class diagram support&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;As a developper you always ends up needing some kind of graphical support for your communication, a &lt;i&gt;class like&lt;/i&gt; diagram is well known by others, the modeling package includes support for Ecore thanks to the EcoreTools project. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;img src="http://1.bp.blogspot.com/_u5tMWln_Ie8/TCmm_j8DGlI/AAAAAAAAAUg/J6VSXdMGACo/s400/graphical_modeling.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5488101231836731986" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 214px; " /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span"  style="color:#0000EE;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;/span&gt;&lt;div&gt;And you even have specific views to browse your design hierarchy or usages.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://4.bp.blogspot.com/_u5tMWln_Ie8/TCmn4d5nerI/AAAAAAAAAUo/j9s9nOCZ5Lk/s1600/hiearchy_graphical.png"&gt;&lt;img src="http://4.bp.blogspot.com/_u5tMWln_Ie8/TCmn4d5nerI/AAAAAAAAAUo/j9s9nOCZ5Lk/s400/hiearchy_graphical.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5488102209468463794" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 307px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span"  style="color:#0000EE;"&gt;&lt;u&gt;&lt;br /&gt;&lt;/u&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span"  style="color:#0000EE;"&gt;&lt;u&gt;&lt;br /&gt;&lt;/u&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span"  style="color:#0000EE;"&gt;&lt;u&gt;&lt;br /&gt;&lt;/u&gt;&lt;/span&gt;&lt;/div&gt;&lt;a href="http://4.bp.blogspot.com/_u5tMWln_Ie8/TCmn4d5nerI/AAAAAAAAAUo/j9s9nOCZ5Lk/s1600/hiearchy_graphical.png"&gt;&lt;/a&gt;&lt;div&gt;While I'm at it, if you're interested in contributing to this  project which is highly popular, you should really get in touch with &lt;a href="http://ed-merks.blogspot.com/"&gt;Ed&lt;/a&gt; ! We're looking for fresh people to reboot this project, &lt;b&gt;it's not as active as it deserves to be !&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: center; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;a href="http://1.bp.blogspot.com/_u5tMWln_Ie8/TCmm_j8DGlI/AAAAAAAAAUg/J6VSXdMGACo/s1600/graphical_modeling.png"&gt;&lt;/a&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;3. It's an SDK&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;As the modeling project provides a lot of high quality frameworks, you often need to have access to their source and as such it's&lt;b&gt; one of the few packages providing SDK's.&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://4.bp.blogspot.com/_u5tMWln_Ie8/TCmpkvmigyI/AAAAAAAAAVI/z20Y8oiRD_A/s1600/sdk.png"&gt;&lt;img src="http://4.bp.blogspot.com/_u5tMWln_Ie8/TCmpkvmigyI/AAAAAAAAAVI/z20Y8oiRD_A/s400/sdk.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5488104069646156578" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 343px; height: 400px; " /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;All those reasons are making the modeling package the best one to get started with any modeling task but also any &lt;b&gt;RCP development planning to leverage those great frameworks. &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Oh yes, that should make this package a &lt;b&gt;nice starter for e4&lt;/b&gt; too :&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(85, 26, 139); -webkit-text-decorations-in-effect: underline; "&gt;&lt;img src="http://www.eclipse.org/e4/resources/images/0.9-splash.png" border="0" alt="" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 260px; height: 275px; " /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(85, 26, 139); -webkit-text-decorations-in-effect: underline; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;post scriptum : &lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;4. It's easily extensible&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Of course the modeling community is way more active than that, I would strongly encourage you to have a small click on this button &lt;a href="http://4.bp.blogspot.com/_u5tMWln_Ie8/TDHlIyoxJII/AAAAAAAAAVQ/DRWzgtYff0I/s1600/button.png"&gt;&lt;img src="http://4.bp.blogspot.com/_u5tMWln_Ie8/TDHlIyoxJII/AAAAAAAAAVQ/DRWzgtYff0I/s200/button.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5490421359935825026" style="cursor: pointer; width: 200px; height: 56px; " /&gt;&lt;/a&gt;  and have a try on the latest hot contributions which were not part of the Helios release the Agent Modeling Platform :&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;img src="http://2.bp.blogspot.com/_u5tMWln_Ie8/TDHloT6ZccI/AAAAAAAAAVY/KyThOcAzLiY/s400/amp.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5490421901444084162" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 76px; " /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;And the Papyrus UML modeler&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;span class="Apple-style-span" style="-webkit-text-decorations-in-effect: underline; "&gt;&lt;img src="http://2.bp.blogspot.com/_u5tMWln_Ie8/TDHlu5-PjCI/AAAAAAAAAVg/Ps2xFWN5R9c/s400/papyrus.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5490422014739975202" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 59px; " /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="color:#0000EE;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); "&gt;And now it's time for you to &lt;a href="http://www.eclipse.org/modeling/amalgam/"&gt;download this package !&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5749374620125186414-795928650798672137?l=model-driven-blogging.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://model-driven-blogging.blogspot.com/feeds/795928650798672137/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5749374620125186414&amp;postID=795928650798672137' title='12 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/795928650798672137'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/795928650798672137'/><link rel='alternate' type='text/html' href='http://model-driven-blogging.blogspot.com/2010/06/helios-review-in-pictures.html' title='3 Good Reasons to use the Helios Modeling Package'/><author><name>Cédric Brun</name><uri>http://www.blogger.com/profile/17900773020510714946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_u5tMWln_Ie8/SRH3NgLBsHI/AAAAAAAAAAY/p_G-WB2DRaA/S220/author_photo.php.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_u5tMWln_Ie8/TCmorb-s80I/AAAAAAAAAUw/VHo7TAdbtwI/s72-c/filter_generatedcode.png' height='72' width='72'/><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5749374620125186414.post-5597262855966298773</id><published>2010-06-28T01:04:00.000-07:00</published><updated>2010-06-28T02:23:12.676-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='compare'/><category scheme='http://www.blogger.com/atom/ns#' term='acceleo'/><title type='text'>Forecasts Comparison For The World !</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_u5tMWln_Ie8/TChbccq19mI/AAAAAAAAAUY/Pix1kjyqitQ/s1600/compared_forecast1.png"&gt;&lt;/a&gt;I have to admit I know nothing about soccer. Yes I'm a french guy, but I know nothing about soccer. That said I'm not against having a few beers in front of this broadcasted green field and I'm always in when its about having fun with a small game leveraging Eclipse technologies.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Obviously I played with the EEF based rich client for the forecasts, and from the moment the &lt;a href="http://eef-modeling.blogspot.com/2010/06/eclipse-wordlcup-bye-bye-france-hello.html"&gt;source code has been made availabl&lt;/a&gt;e I started hacking the code.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The forecasts, matchs and results are all kept in a model accessible through an http uri, and as &lt;i&gt;EMF  rule them all,  find them, bring them all and in the darkness bind them, &lt;/i&gt;you can leverage any Eclipse Modeling component to hack something quite easily.&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;br /&gt;&lt;img src="http://2.bp.blogspot.com/_u5tMWln_Ie8/TCha9tHZZXI/AAAAAAAAAUQ/ZYmMQtmLQRI/s400/compare_menu.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5487736162080089458" style="float: right; margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 10px; cursor: pointer; width: 400px; height: 394px; " /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;That's what I did with Compare.&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;I extended the EMF editor adding a specific action, &lt;b&gt;"Compare with / Player with Best Rank"&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;This action allows you to compare your own forecasts with the best ones, and then merge your own forcast with the best player one &lt;i&gt;(Noooo, that's not cheating  ! )&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;And here is  the user interface you get for free*, with a pure  semantic comparison :&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="color:#0000EE;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;a href="http://literate.modeling.free.fr/modeling/compared_forecast1.png"&gt;&lt;img src="http://1.bp.blogspot.com/_u5tMWln_Ie8/TChbccq19mI/AAAAAAAAAUY/Pix1kjyqitQ/s400/compared_forecast1.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5487736690241304162" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 234px; " /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); "&gt;&lt;i&gt;* you have to depend on EMF Compare though...&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); "&gt;Here is the logic needed to launch the comparison :&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-family:Georgia, serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;iframe src="http://pastebin.com/embed_iframe.php?i=0wdcF2fm" style="border:none;width:100%;height:400px"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); "&gt;I had to use a few tricks, I had to  provide a specific match engine enforcing the match of two players, otherwise the Compare component stop matching the forecasts from the beginning as the players are differents.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;iframe src="http://pastebin.com/embed_iframe.php?i=Ls4aqfPJ" style="border:none;width:100%;height:600px"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;div&gt;&lt;p&gt;That's all for today, If I can free more time for this hack I'll provide a diff extension to change the score delta representation to a more meaningfull one, so far it's left as an exercise for the reader ;)&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5749374620125186414-5597262855966298773?l=model-driven-blogging.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://model-driven-blogging.blogspot.com/feeds/5597262855966298773/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5749374620125186414&amp;postID=5597262855966298773' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/5597262855966298773'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/5597262855966298773'/><link rel='alternate' type='text/html' href='http://model-driven-blogging.blogspot.com/2010/06/forecasts-comparison-for-world.html' title='Forecasts Comparison For The World !'/><author><name>Cédric Brun</name><uri>http://www.blogger.com/profile/17900773020510714946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_u5tMWln_Ie8/SRH3NgLBsHI/AAAAAAAAAAY/p_G-WB2DRaA/S220/author_photo.php.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_u5tMWln_Ie8/TCha9tHZZXI/AAAAAAAAAUQ/ZYmMQtmLQRI/s72-c/compare_menu.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5749374620125186414.post-89262900413695265</id><published>2010-06-18T01:50:00.000-07:00</published><updated>2010-06-18T07:32:14.601-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='amalgamation'/><category scheme='http://www.blogger.com/atom/ns#' term='acceleo'/><title type='text'>Eclipse Modeling Survey results</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_u5tMWln_Ie8/TBs969kZH7I/AAAAAAAAAUI/ibPijhLUEUw/s1600/examples.png"&gt;&lt;/a&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_u5tMWln_Ie8/TBs7tcoXZ7I/AAAAAAAAAUA/RF14bHj-Pzk/s1600/invests.png"&gt;&lt;/a&gt;The survey has been going on for more than one week now and the trends are only enforcing themselves. Let's summarize it:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_u5tMWln_Ie8/TBs4EOCQ0jI/AAAAAAAAATY/iuvwfIcGfR4/s1600/commiter.png"&gt;&lt;img src="http://2.bp.blogspot.com/_u5tMWln_Ie8/TBs4EOCQ0jI/AAAAAAAAATY/iuvwfIcGfR4/s400/commiter.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5484038616391930418" style="float: left; margin-top: 0px; margin-right: 10px; margin-bottom: 10px; margin-left: 0px; cursor: pointer; width: 350px; height: 179px; " /&gt;&lt;/a&gt;First, the audience represents&lt;b&gt; many non-commiters (2/3) &lt;/b&gt;though the commiters are still quite represented. That's quite consistent with what I was expecting, the survey was published on the planet,  some newsgroups and through twitter and as such targeting commiter or adopters following quite closely what's happening in Eclipse Modeling.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;img src="http://3.bp.blogspot.com/_u5tMWln_Ie8/TBs4U0TyBkI/AAAAAAAAATo/MuhK8EFjYGY/s400/packagesize.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5484038901543863874" style="float: right; margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 10px; cursor: pointer; width: 313px; height: 211px; " /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="-webkit-text-decorations-in-effect: underline; "&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="color:#0000EE;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Concerning the package size, we're right now at &lt;b&gt;250MB&lt;/b&gt;, it looks like it's mostly ok but being a bit smaller would still be nice.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;As the&lt;b&gt; package is an SDK&lt;/b&gt; we could probably drop most of the dupplicated javadoc in the plugins.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://1.bp.blogspot.com/_u5tMWln_Ie8/TBs5GQZS1kI/AAAAAAAAATw/w3v4mFXegek/s1600/bestpractices.png"&gt;&lt;img src="http://1.bp.blogspot.com/_u5tMWln_Ie8/TBs5GQZS1kI/AAAAAAAAATw/w3v4mFXegek/s400/bestpractices.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5484039750896768578" style="float: left; margin-top: 0px; margin-right: 10px; margin-bottom: 10px; margin-left: 0px; cursor: pointer; width: 360px; height: 206px; " /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This one is interesting, it's something we're hearing and hearing again at each Eclipse conference, users do want&lt;b&gt; more documentation&lt;/b&gt;, moreover best practices are hard to reveal through the wiki, newsgroup and online help jungle.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;There is probably something to do here but, hey, there is an &lt;a href="http://www.informit.com/store/product.aspx?isbn=9780321331885"&gt;EMF Book&lt;/a&gt;  already, an &lt;a href="http://www.informit.com/store/product.aspx?isbn=0321580540"&gt;Eclipse Modeling&lt;/a&gt; one and everybody can contribute on the wiki, so &lt;b&gt;why isn't this urgent need covered yet&lt;/b&gt; ?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It might be because:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;People are not even aware of these books or books are old fashioned now : all content should be on the web !&lt;/li&gt;&lt;li&gt;It's so hard to understand what each project is providing that one really needs some &lt;i&gt;Modeling Guide&lt;/i&gt;.&lt;/li&gt;&lt;li&gt;As a user you always want doc even if you won't ever read it, it just gives you the confidence that the technology is not going to vanish in a glimpse.&lt;/li&gt;&lt;li&gt;[                ]   &lt;----- any opinion expressed through the comments&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;It's even more disturbing when ...&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;img src="http://2.bp.blogspot.com/_u5tMWln_Ie8/TBs7tcoXZ7I/AAAAAAAAAUA/RF14bHj-Pzk/s400/invests.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5484042623219361714" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 300px; height: 159px; " /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="color:#0000EE;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;yes, &lt;b&gt;most people would be willing to give time to make this happen.&lt;/b&gt; We might need to do something here, maybe &lt;a href="http://wiki.eclipse.org/DocumentationGuidelines/CrowdSourcingExample"&gt;crowdsourcing&lt;/a&gt; the doc would do the trick...  What is pretty sure is I wouldn't like it if Eclipse Modeling commiters spent half of their time documenting : we should make it easier for the adopters to contribute back. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;And yes, writting doc and books takes a&lt;b&gt; huge amount of time &lt;/b&gt;!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;a href="http://2.bp.blogspot.com/_u5tMWln_Ie8/TBs969kZH7I/AAAAAAAAAUI/ibPijhLUEUw/s1600/examples.png"&gt;&lt;img src="http://2.bp.blogspot.com/_u5tMWln_Ie8/TBs969kZH7I/AAAAAAAAAUI/ibPijhLUEUw/s400/examples.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5484045054422622130" style="float: right; margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 10px; cursor: pointer; width: 363px; height: 233px; " /&gt;&lt;/a&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt; I asked another related question in the survey about "examples". In fact examples are way easier to provide and in my opinion are more valuable in most cases. And when you look at it, &lt;b&gt;each project is already building its own examples, &lt;/b&gt;but these examples cannot  be composed in some way. Just like Toast is a best practices application for OSGi, we would need a modeling one. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;At its beginning the Amalgam project was providing some; yet since these examples were not part of their target Eclipse project (EMF examples in EMF, ATL examples in ATL)  they were not maintained correctly. As a result they are not reflecting the "state of the art" of Eclipse Modeling anymore... Maybe for the next release !&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I'm done for the strong trendes, others questions like "Having on the shelf design and generation tools" or "Domain focused UI instead of component focused one" were quite uncertain.&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial, sans, sans-serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span"  style="font-family:Georgia, serif;"&gt;&lt;span class="Apple-style-span" style="white-space: normal;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style=" white-space: pre; font-family:arial, sans, sans-serif;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;A few more ideas or questions have been given through this survey,&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style=" white-space: pre; font-family:arial, sans, sans-serif;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt; It will take another blog post to describe those.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style=" white-space: pre; font-family:arial, sans, sans-serif;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style=" white-space: pre; font-family:arial, sans, sans-serif;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;Thanks again for your feedback !&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style=" white-space: pre; font-family:arial, sans, sans-serif;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:arial, sans, sans-serif;font-size:100%;"&gt;&lt;span class="Apple-style-span"  style=" white-space: pre;font-size:13px;"&gt;&lt;i&gt;&lt;span class="Apple-style-span"   style="font-family:Georgia, serif;font-size:130%;"&gt;&lt;span class="Apple-style-span"  style=" font-style: normal; white-space: normal;font-size:16px;"&gt;&lt;p&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5749374620125186414-89262900413695265?l=model-driven-blogging.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://model-driven-blogging.blogspot.com/feeds/89262900413695265/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5749374620125186414&amp;postID=89262900413695265' title='1 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/89262900413695265'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/89262900413695265'/><link rel='alternate' type='text/html' href='http://model-driven-blogging.blogspot.com/2010/06/modeling-survey-results.html' title='Eclipse Modeling Survey results'/><author><name>Cédric Brun</name><uri>http://www.blogger.com/profile/17900773020510714946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_u5tMWln_Ie8/SRH3NgLBsHI/AAAAAAAAAAY/p_G-WB2DRaA/S220/author_photo.php.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_u5tMWln_Ie8/TBs4EOCQ0jI/AAAAAAAAATY/iuvwfIcGfR4/s72-c/commiter.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5749374620125186414.post-3996130301796475531</id><published>2010-06-09T23:49:00.000-07:00</published><updated>2010-06-11T05:18:27.689-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='acceleo'/><title type='text'>Eclipse Modeling Package Survey</title><content type='html'>I've been quiet in the planet lately, it doesn't mean I've been inactive, quite the contrary in fact, just like all the other commiters I've spent the last few weeks polishing the Eclipse Modeling Helios release.  (As  a sidenote, I'm giving more update from here --&gt;  &lt;a href="http://twitter.com/bruncedric"&gt;&lt;img src="http://1.bp.blogspot.com/_u5tMWln_Ie8/TBCSNGcmO4I/AAAAAAAAATA/3uH2Sa365OY/s200/icon_twitter.png" /&gt;&lt;/a&gt;  )&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;And now the final bits are almost here ! More info about what's new in the Modeling Package soon, but you might have already seen that we have a &lt;a href="http://twitter.com/IanSkerrett"&gt;pretty good&lt;/a&gt; &lt;a href="http://ekkescorner.wordpress.com/2010/06/08/redview-0-8-0-and-epp-modeling-helios-rc3/"&gt;feedback&lt;/a&gt; :) .&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Helios is almost public now, we're already wondering what shape &lt;b&gt;Eclipse Indigo&lt;/b&gt; will have, and to do so I'd like to have &lt;b&gt;your opinion&lt;/b&gt;.  I compiled a tiny survey, 6 questions you can fill in seconds.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I'f you're interested in Modeling in General, and Eclipse Modeling in particular,&lt;b&gt; &lt;span class="Apple-style-span"  style="color:#CC0000;"&gt;please spend the next seconds filling this survey.&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;the survey is embedded in the post or accessible &lt;a href="http://spreadsheets0.google.com/viewform?hl=en&amp;amp;formkey=dEZ4UzZSUVF0T25ld2Z5TVNnUlhsQ2c6MQ#gid=0"&gt;here&lt;/a&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;iframe src="http://spreadsheets.google.com/embeddedform?formkey=dEZ4UzZSUVF0T25ld2Z5TVNnUlhsQ2c6MQ" width="760" height="1540" frameborder="0" marginheight="0" marginwidth="0"&gt;Loading...&lt;/iframe&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5749374620125186414-3996130301796475531?l=model-driven-blogging.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://model-driven-blogging.blogspot.com/feeds/3996130301796475531/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5749374620125186414&amp;postID=3996130301796475531' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/3996130301796475531'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/3996130301796475531'/><link rel='alternate' type='text/html' href='http://model-driven-blogging.blogspot.com/2010/06/eclipse-modeling-package-survey.html' title='Eclipse Modeling Package Survey'/><author><name>Cédric Brun</name><uri>http://www.blogger.com/profile/17900773020510714946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_u5tMWln_Ie8/SRH3NgLBsHI/AAAAAAAAAAY/p_G-WB2DRaA/S220/author_photo.php.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_u5tMWln_Ie8/TBCSNGcmO4I/AAAAAAAAATA/3uH2Sa365OY/s72-c/icon_twitter.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5749374620125186414.post-5291931750421210200</id><published>2010-04-28T05:43:00.000-07:00</published><updated>2010-04-28T07:27:07.112-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='performance'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='compare'/><category scheme='http://www.blogger.com/atom/ns#' term='acceleo'/><title type='text'>Compare/Helios - Every Second Counts</title><content type='html'>I tend to break a lot of keyboards. Not because I release all the aggression that I hold deep within me on them, but because I drool testing the product Obeo is going to launch &lt;i&gt;really soon now.&lt;/i&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;During EclipseCon 2010 It struck me that some keyboards might have died because of EMF Compare. Ok, no more drooling here, the colors are nice, but when you are using compare with pretty decent models (like thousands of elements)  you end up thinking  it could be faster.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Hold your breath&lt;/b&gt;, order your very last keyboard which you'll use for a long time now, Compare's scalability has been improved &lt;b&gt;a lot&lt;/b&gt; both in terms of performances and memory.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This work was pretty focused on the &lt;i&gt;matching pipeline&lt;/i&gt;, there is room for improvements in the other parts of compare (especially the UI) but the matching was just so obviously slow and is even called 2 times for the 3 way match. That wa just making sense to fix things there.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The performance test case is using UML models containing 1,000 to 256,000 elements organized in a decent way and is matching them several times, here are the results before the scalability sprint:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://3.bp.blogspot.com/_u5tMWln_Ie8/S9gt4IR8UQI/AAAAAAAAASw/J8dPvXGk1OE/s1600/beforeSprint.png"&gt;&lt;img src="http://3.bp.blogspot.com/_u5tMWln_Ie8/S9gt4IR8UQI/AAAAAAAAASw/J8dPvXGk1OE/s400/beforeSprint.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5465168590132760834" style="float: center; margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 10px; cursor: pointer; width: 400px; height: 212px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Yes we have quite a strange value for the 1000 elements model, after investigation it looks like it's just some kind of corner case.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The last models have no time result  for the simple reason they use all my memory and I end up with this &lt;b&gt;dreaded&lt;/b&gt; OOM error.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here are the figures after the sprint:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://1.bp.blogspot.com/_u5tMWln_Ie8/S9gt4UTN8QI/AAAAAAAAAS4/U69obo-5tAs/s1600/afterSprint.png"&gt;&lt;img src="http://1.bp.blogspot.com/_u5tMWln_Ie8/S9gt4UTN8QI/AAAAAAAAAS4/U69obo-5tAs/s400/afterSprint.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5465168593359335682" style="float: center; margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 10px; cursor: pointer; width: 400px; height: 190px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Now I can feel from here that you've been &lt;b&gt;thrilled&lt;/b&gt; by all these figures and you only want one thing :&lt;i&gt; to get your hands on this releas&lt;/i&gt;e. The Helios M7 release will be a good time to do so, wait for a few more days and go ahead: give us feedback !&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Not only will the Helios release provide these major performances enhancements but the future looks even better: Stefan will work on a new match engine implementation focused on scalability for his google summer of code.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Waking up as every morning, getting up but being a bit happier than usual as I know I made progress on something important for adopters :)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Please, keep in mind that&lt;b&gt; your &lt;/b&gt;feedback made me work on this, thanks again.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5749374620125186414-5291931750421210200?l=model-driven-blogging.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://model-driven-blogging.blogspot.com/feeds/5291931750421210200/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5749374620125186414&amp;postID=5291931750421210200' title='1 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/5291931750421210200'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/5291931750421210200'/><link rel='alternate' type='text/html' href='http://model-driven-blogging.blogspot.com/2010/04/comparehelios-every-second-counts.html' title='Compare/Helios - Every Second Counts'/><author><name>Cédric Brun</name><uri>http://www.blogger.com/profile/17900773020510714946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_u5tMWln_Ie8/SRH3NgLBsHI/AAAAAAAAAAY/p_G-WB2DRaA/S220/author_photo.php.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_u5tMWln_Ie8/S9gt4IR8UQI/AAAAAAAAASw/J8dPvXGk1OE/s72-c/beforeSprint.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5749374620125186414.post-5128593400282170056</id><published>2010-03-26T00:54:00.000-07:00</published><updated>2010-03-26T01:53:46.645-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='eclipsecon'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='acceleo'/><title type='text'>I'm a poor, lonesome cowboy ..</title><content type='html'>&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;I'm a long long way from home. &lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;And this poor lonesome cowboy. &lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Has got a long long way to roam ...&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;That's right, EclipseCon 2010 is over, each year it gets better and better and leaving it is always a bit sad. &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;I'll use this blog post as a memento of my feelings and the things I noticed during this week:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Many people are using &lt;/span&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;EMF Compare&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;. That should not be a surprise as it provides a key feature for anybody working with models, but still it gives me a warm feeling :)  The ECon attendees provided me a lot of very relevant feedback, among others it looks like s&lt;/span&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;cability is not so nice when one is using a big model&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;. Don't worry, I'll work on that &lt;/span&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;(In fact I already started) &lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt; and you can &lt;/span&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;expect a performance boost&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;, even for the generic engine. More of that in a future blog post with figures.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;People are now used to the idea of &lt;/span&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;e4 is going to exist,&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt; it will provide new means for writting application, I also have the feeling that people understood that e4 is going to be what &lt;/span&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;WE &lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;as a community, wants it to be.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Chocolate fountains&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt; are not mandatory,  &lt;/span&gt;&lt;a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=300500"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;but some bugs will always arise.&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;ATL is definitely THE model to model transformation language, it's &lt;/span&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;mature&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;, and now thanks to William's work the tooling is a bit &lt;/span&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;closer to the perfection.&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;CDO is one of the most amazing framework I had the change to use, it's quite unbelivable that such a &lt;/span&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;small and slim framework can provides you such a power&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;. You need years of engineering and &lt;/span&gt;&lt;a href="http://www.eclipsecon.org/2010/sessions/?page=sessions&amp;amp;id=1588"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;professionalism &lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;to achieve this. congrats to the whole CDO Team !&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;I have a lot of hope for the &lt;/span&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Mylyn Review &lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;project, the approach is simple but perfect for people like me, it will just be "yet another key feature" of the IDE. In fact the whole Mylyn project is providing, as usual, innovations.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;The &lt;/span&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Sharks Rocks&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt; ! They blasted the Dallas Stars ! And I guess I'll be more interested about hockey now :)&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt; &lt;/span&gt;&lt;a href="http://lenettoyeur-on-eclipse.blogspot.com/"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Pascal &lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;has not been abducted by aliens, he is still the same although being transformed in a Maven guy now.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Modeling &lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;is everywhere. It's just pervading on everything : from your IP Log to the next generation platform you'll rely on.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;End users really appreciated the work I did on the &lt;/span&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;modeling package&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;, Here again, thanks for your feedback.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt; Xtext was everywhere, and will be a key asset for the &lt;/span&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;upcoming IDE generation.&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;The Eclipse Foundation did a &lt;/span&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;tremendous work&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt; for this event, and it' s been perfect ! Thanks again !&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Acceleo &lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;is so powerful that many people expressed their wish to use it for their code generation needs : step one on the "taking over the world" plan is validated.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Nasa, Rockets and Robots are &lt;/span&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;cool&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;. &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;The &lt;/span&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Architecture Council &lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;is taking more and more initiative and &lt;/span&gt;&lt;a href="http://wiki.eclipse.org/Martin_Oberhuber"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Martin &lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;is doing a great job driving it.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Now that EMF is everywhere everybody wants to use &lt;/span&gt;&lt;a href="http://www.eclipse.org/modeling/emft/?project=eef"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;EEF&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Huge companies like &lt;/span&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;SAP &lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;or &lt;/span&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Thales &lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;are building their tooling strategy around Eclipse - not only as a platform but also as a community.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;I already said "&lt;/span&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;No&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;" to my manager at least two times !&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Such a conference in an hotel can work, and it's actually &lt;/span&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;even better&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt; than in a Convention Center, we have nice couch, a bar, it makes discussion way easier.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Having tutorials in the morning during the whole week is great, then you start smoothly, learn things and code : I can &lt;/span&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;fill my addiction&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;It's possible to create a conference program of high quality &lt;/span&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;(the best I had in the previous four years to my opinion)&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;, with such a diverse community. &lt;/span&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Kuddos to Oisin &lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;!&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;I'm pretty sure I'm forgotting things, but anyway, I really need to sleep now...&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;In a nutshell : &lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;the best conference ever&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt; :)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial, sans-serif;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5749374620125186414-5128593400282170056?l=model-driven-blogging.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://model-driven-blogging.blogspot.com/feeds/5128593400282170056/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5749374620125186414&amp;postID=5128593400282170056' title='1 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/5128593400282170056'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/5128593400282170056'/><link rel='alternate' type='text/html' href='http://model-driven-blogging.blogspot.com/2010/03/im-poor-lonesome-cowboy.html' title='I&apos;m a poor, lonesome cowboy ..'/><author><name>Cédric Brun</name><uri>http://www.blogger.com/profile/17900773020510714946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_u5tMWln_Ie8/SRH3NgLBsHI/AAAAAAAAAAY/p_G-WB2DRaA/S220/author_photo.php.jpeg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5749374620125186414.post-5574820773702427430</id><published>2010-03-23T23:12:00.000-07:00</published><updated>2010-03-23T23:12:44.905-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='eclipsecon'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='compare'/><category scheme='http://www.blogger.com/atom/ns#' term='acceleo'/><title type='text'>Diff, Merge and Patch your Models with Helios</title><content type='html'>Ok, you're stuck at home, you are one of the numerous budget shortcuts victims ?  You did not had the chance to come at EclipseCon ?  Here is some kind of transcript of the talk I just gave:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_u5tMWln_Ie8/S6JBUCN2b7I/AAAAAAAAARY/E9hWcXn7EDs/s1600-h/slide1.png"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 320px; height: 241px;" src="http://3.bp.blogspot.com/_u5tMWln_Ie8/S6JBUCN2b7I/AAAAAAAAARY/E9hWcXn7EDs/s320/slide1.png" alt="" id="BLOGGER_PHOTO_ID_5449990311519874994" border="0" /&gt;&lt;/a&gt;This talk will tackle &lt;b&gt;team-working with models.&lt;/b&gt; Once you use models in your development proces, they matters as much &lt;b&gt;as the source code&lt;/b&gt;. Don't you want to be able to diff, merge or even patch your models just like with text files ?&lt;br /&gt;&lt;br /&gt;The good news is that unlike text files models have a semantic structure defined thanks to their ecore model, as such we're able to semantically compare the models, comparing the serialization (XMI or other..) is often meaningless.&lt;br /&gt;&lt;br /&gt;By the way I'm the project lead of EMF compare, the project has been contributed in Eclipse in early 2007,  at that time many EMF adopters realized that this piece was missing in the Modeling ecosystem and &lt;b&gt;this lack was often a blocker &lt;/b&gt;!&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_u5tMWln_Ie8/S6JBbUYeIfI/AAAAAAAAARg/FfgKCFrs68c/s1600-h/slide2.png"&gt;&lt;img style="float: right; margin: 0pt 0pt 10px 10px; cursor: pointer; width: 320px; height: 239px;" src="http://4.bp.blogspot.com/_u5tMWln_Ie8/S6JBbUYeIfI/AAAAAAAAARg/FfgKCFrs68c/s320/slide2.png" alt="" id="BLOGGER_PHOTO_ID_5449990436655342066" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;So here we are, three years later. EMF Compare - in the EMF  Technology project at first-  graduated and is now part of the EMF project  itself !&lt;br /&gt;&lt;br /&gt;Just like Transaction, Validation or CDO, Compare is one of the many pieces you can reuse as a framework, or just as a tool. Its focus is quite narrow : comparing, merging and patching any kind of EMF model, the later being an UML model or a domain specific one.&lt;br /&gt;&lt;br /&gt;As we graduated we've been focusing on keeping &lt;b&gt;stable API you can rely on.&lt;/b&gt;  We really think that EMF popularity is highly due to the fact that depending on it is easy as it is completely forward compatible. Working nicely as a pure Java jar library is another key asset of EMF, we tried to stick to that for the Compare project: our framework can be used as a Java jar, not depending on Equinox or any extension point.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_u5tMWln_Ie8/S6JBm2VTvOI/AAAAAAAAARo/NZXrdoHBqAY/s1600-h/slide3.png"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 320px; height: 239px;" src="http://3.bp.blogspot.com/_u5tMWln_Ie8/S6JBm2VTvOI/AAAAAAAAARo/NZXrdoHBqAY/s320/slide3.png" alt="" id="BLOGGER_PHOTO_ID_5449990634747444450" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;We could phrase the Eclipse IDE spirit in  :&lt;i&gt; be extensible, be customizable, be integrated&lt;/i&gt;. We are sticking to this motto too, you can extend or customize any part of the comparison process.&lt;br /&gt;&lt;br /&gt;The compare and merge features are completely integrated with the Eclipse Team API. When you launch a comparison from the workspace or from an history, if the file is in fact a model, EMF Compare will be opened and will show you the differences, allowing you to merge, or switch back to the serialization diff.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://literate.modeling.free.fr/modeling/compare/BasicsCVSSVNGit.swf"&gt;&lt;br /&gt;&lt;img style="float: right; margin: 0pt 0pt 10px 10px; cursor: pointer; width: 320px; height: 241px;" src="http://1.bp.blogspot.com/_u5tMWln_Ie8/S6JM-jhatqI/AAAAAAAAASo/vICGoy5rQZM/s320/demoplay.png" alt="" id="BLOGGER_PHOTO_ID_5450003136642725538" border="0" /&gt;&lt;/a&gt;Let's have a look on the tool through a demo. This demo goes higher and higher in coolness, as such it's starting by comparing an &lt;i&gt;old fashioned&lt;/i&gt; UML model on a &lt;i&gt;dying&lt;/i&gt; CVS Repository.&lt;br /&gt;&lt;br /&gt;A bit more &lt;i&gt;cool &lt;/i&gt;:  comparing a domain specific model on a SVN repository.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Total coolness&lt;/i&gt; : comparing an XText DSLsemantically, merging it, on top of a GIT repository !&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_u5tMWln_Ie8/S6JBxJWzrAI/AAAAAAAAARw/3VhugVeW-TQ/s1600-h/slide4.png"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 320px; height: 241px;" src="http://4.bp.blogspot.com/_u5tMWln_Ie8/S6JBxJWzrAI/AAAAAAAAARw/3VhugVeW-TQ/s320/slide4.png" alt="" id="BLOGGER_PHOTO_ID_5449990811652697090" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;That's just the tip of the iceberg, EMF Compare has a few more features and is especially useful in a lot of contexts, rather than listing all these details I'll focus now on the inside, revealing you which kind of magic make this clock ticking.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_u5tMWln_Ie8/S6JB677TbEI/AAAAAAAAAR4/vI2YxC5iR8Y/s1600-h/slide5.png"&gt;&lt;img style="float: right; margin: 0pt 0pt 10px 10px; cursor: pointer; width: 320px; height: 240px;" src="http://3.bp.blogspot.com/_u5tMWln_Ie8/S6JB677TbEI/AAAAAAAAAR4/vI2YxC5iR8Y/s320/slide5.png" alt="" id="BLOGGER_PHOTO_ID_5449990979846368322" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;As I said at the beginning, the good news comparing models is that we've got semantic information we're not comparing plain text.  There is a drawback though: models are graph and as such being able to match similar graphs is a complex and tricky problem.&lt;br /&gt;&lt;br /&gt;The first thing we have to do for a comparison is to match the elements from both versions of the model.  &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If you've got ID's that part is trivial, EMF Compare will use your ID's (either business one or technical ones). On the other hand if you don't, we are providing what we call the "generic match engine", this engine uses a few statistical metrics to match the elements.&lt;br /&gt;&lt;br /&gt;For a given element this engine will extract it's type information, the content values, its relations with other elements and its name if we can detect one.  Each piece of this extraction will be compared with other elements to compute a similarity coefficient, from this one we can try to get closer and closer to the perfect match.&lt;br /&gt;&lt;br /&gt;Once this engine has done it's job, it provides a Match Model grouping all this information and weaving the other models.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_u5tMWln_Ie8/S6JCH2WQoMI/AAAAAAAAASA/SCnoiG6B-EE/s1600-h/slide6.png"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 320px; height: 238px;" src="http://4.bp.blogspot.com/_u5tMWln_Ie8/S6JCH2WQoMI/AAAAAAAAASA/SCnoiG6B-EE/s320/slide6.png" alt="" id="BLOGGER_PHOTO_ID_5449991201687118018" border="0" /&gt;&lt;/a&gt; It gets more complicated, (and then more interesting) when using source control management systems. Then you have to match three versions of a model: yours, the remote one, and the common ancestor between those versions.&lt;br /&gt;&lt;br /&gt;To do so we builds two match models, between your local version and the common ancestor, then between the remote version and the common ancestor, and we combine those two match models into one, weaving the three models altogether.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_u5tMWln_Ie8/S6JCMtB5zlI/AAAAAAAAASI/lOJbc0uglPw/s1600-h/slide7.png"&gt;&lt;img style="float: right; margin: 0pt 0pt 10px 10px; cursor: pointer; width: 320px; height: 239px;" src="http://4.bp.blogspot.com/_u5tMWln_Ie8/S6JCMtB5zlI/AAAAAAAAASI/lOJbc0uglPw/s320/slide7.png" alt="" id="BLOGGER_PHOTO_ID_5449991285085163090" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;At this stage it should be obvious that the faster the match engine is, the faster you'll get a result.&lt;br /&gt;&lt;br /&gt;To be honest the generic match engine is not so fast, having little clue about the models it's matching it spends a lot of time browsing the structure, trying to match things which probably have no possibilities of being the same..&lt;br /&gt;&lt;br /&gt;Being aware of that we eased the definition of your own match engine specific to your Ecore model. In doing so no doubt you'll get better results and way faster.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_u5tMWln_Ie8/S6JCSw3YODI/AAAAAAAAASQ/lMht6tWhZkg/s1600-h/slide8.png"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 320px; height: 240px;" src="http://4.bp.blogspot.com/_u5tMWln_Ie8/S6JCSw3YODI/AAAAAAAAASQ/lMht6tWhZkg/s320/slide8.png" alt="" id="BLOGGER_PHOTO_ID_5449991389193975858" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Let's take a step back. What are we trying to do ?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;We are trying to change two versions of a graph into a set of events, in reality we are trying to re-construct "a posteriori" the history of the graph: what changes have been made to transform the original one to the new one.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Match computation is done by the Match Engine, the Diff one by the Diff Engine. This processor has to provide a Diff Model from a Match Model.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;In fact, when you have the MatchModel, deducing the DiffModel is not a huge task, you basically have to browse the matched elements, checking for changed attributes and reference, and then create for each "unmatched element" the corresponding deletion or addition event.&lt;br /&gt;&lt;br /&gt;Here again, you can plug in your own diff engine, and you can even define your own diffs specific to your formalism.  Instead of having a "&lt;i&gt;stock value changed from 12 to 34&lt;/i&gt;" event you can define yours as being "&lt;i&gt;stock value has been increased from 12 to 34&lt;/i&gt;" and even aggregate several atomic diffs in a single top-level one.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Being a first class model itself, the diff model can be leveraged through model to model or model to text transformation to publish the changes to another format.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_u5tMWln_Ie8/S6JCiX8jmOI/AAAAAAAAASY/aZQXDhGah4E/s1600-h/slide9.png"&gt;&lt;img style="float: right; margin: 0pt 0pt 10px 10px; cursor: pointer; width: 320px; height: 240px;" src="http://1.bp.blogspot.com/_u5tMWln_Ie8/S6JCiX8jmOI/AAAAAAAAASY/aZQXDhGah4E/s320/slide9.png" alt="" id="BLOGGER_PHOTO_ID_5449991657382713570" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Now you should have a basic understanding of what EMF compare is trying to solve and in which way. We've seen that stability both in term of API and code was our primary goal right now but does that means nothing new is being done in Compare ?&lt;br /&gt;&lt;br /&gt;For Helios we fixed many issues thanks to the community feedback, support for fragmented models and matching of referenced resources has been greatly improved.&lt;br /&gt;&lt;br /&gt;The primary feedback is bug reports, but we also had quite a few contributions among those a new API to scope the matching process and a whole new set of plugins to create model independent diffs resilent to transformations in the model you want to apply the diff on.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_u5tMWln_Ie8/S6JCpqlNMdI/AAAAAAAAASg/ZNKe6M0W3io/s1600-h/slide10.png"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 320px; height: 239px;" src="http://4.bp.blogspot.com/_u5tMWln_Ie8/S6JCpqlNMdI/AAAAAAAAASg/ZNKe6M0W3io/s320/slide10.png" alt="" id="BLOGGER_PHOTO_ID_5449991782644134354" border="0" /&gt;&lt;/a&gt; So many things to discuss in such a short time frame.&lt;div&gt;Give it a try, EMF Compare is part of the Eclipse Modeling Platform SDK, download the package and you're done.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt; I would be happy to discuss with you, either IRL or through electronic means.  Please uses the EMF newsgroup, the bugzilla or the #eclipse-modeling IRC channel on freenode. We're also available and new trendy channels like Twitter : @bruncedric.&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Want's more ? Have a try downloading &lt;a href="http://www.eclipse.org/downloads/packages/release/helios/m6"&gt;the Eclipse Modeling Package !&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:georgia;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:georgia;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="  border-collapse: collapse; line-height: 14px; "&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5749374620125186414-5574820773702427430?l=model-driven-blogging.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://model-driven-blogging.blogspot.com/feeds/5574820773702427430/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5749374620125186414&amp;postID=5574820773702427430' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/5574820773702427430'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/5574820773702427430'/><link rel='alternate' type='text/html' href='http://model-driven-blogging.blogspot.com/2010/03/diff-merge-and-patch-your-models-with.html' title='Diff, Merge and Patch your Models with Helios'/><author><name>Cédric Brun</name><uri>http://www.blogger.com/profile/17900773020510714946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_u5tMWln_Ie8/SRH3NgLBsHI/AAAAAAAAAAY/p_G-WB2DRaA/S220/author_photo.php.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_u5tMWln_Ie8/S6JBUCN2b7I/AAAAAAAAARY/E9hWcXn7EDs/s72-c/slide1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5749374620125186414.post-8754344415437460672</id><published>2010-03-23T15:30:00.000-07:00</published><updated>2010-03-23T15:30:00.444-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='eclipsecon'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='atl'/><title type='text'>Modeling Project Runaway : ATL</title><content type='html'>&lt;a href="http://www.eclipsecon.org/2010/sessions/sessions?id=1278"&gt;"Modeling Project Runaway"&lt;/a&gt; was &lt;span style="font-weight: bold;"&gt;the&lt;/span&gt; talk you had to attend to get a vision of what is going on in Eclipse Modeling and more especially how lively this community is. The talk was even too short for EEF to get in but this project had his own talk yesterday.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Ignite_%28event%29"&gt;Ignite&lt;/a&gt; style event, I did a quick demo of the new features in the ATL tooling. ATL is a model to model transformation language, it's incredibly powerful and usable in many different contexts. It allows you to transform information from a formalism to another one or to refine a model.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;ATL has been around for quite a long time in Eclipse and has proven to be quite mature. Nevertheless great new feature have been added this year !&lt;br /&gt;&lt;br /&gt;The tooling editor has been reworked providing now content assist every where, hover tooltips, "open declaration" and even code templates to quickly get started.&lt;br /&gt;&lt;br /&gt;A long awaited feature is the "refining mode", in this mode the transformation is directly applied on the loaded instances of the model, you can then use an ATL transformation as a refactoring script and integrate it in your editor, before the synchronization could only be on the Resource level, forcing you to save and then reload the model.&lt;br /&gt;&lt;br /&gt;Acceleo is providing you a Java API to launch your code generation, ATL is now providing you the same thing !  It's then trivial to launch ATL within any other tooling, just use the Java API, furthermore you can even launch it as a standalone Java application !&lt;br /&gt;&lt;br /&gt;Demo time !&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://literate.modeling.free.fr/modeling/atl/ATL_features.htm"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 240px;" src="http://1.bp.blogspot.com/_u5tMWln_Ie8/S6Izgd_XcvI/AAAAAAAAARQ/pMIqMbOgAnk/s320/atl.png" alt="" id="BLOGGER_PHOTO_ID_5449975131970958066" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;By the way ATL is &lt;span style="font-weight: bold;"&gt;one click away from you&lt;/span&gt;, just install the Helios &lt;a href="http://www.eclipse.org/downloads/packages/"&gt;modeling package&lt;/a&gt; and use the discovery UI to try this out !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5749374620125186414-8754344415437460672?l=model-driven-blogging.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://model-driven-blogging.blogspot.com/feeds/8754344415437460672/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5749374620125186414&amp;postID=8754344415437460672' title='6 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/8754344415437460672'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/8754344415437460672'/><link rel='alternate' type='text/html' href='http://model-driven-blogging.blogspot.com/2010/03/modeling-project-runaway-atl.html' title='Modeling Project Runaway : ATL'/><author><name>Cédric Brun</name><uri>http://www.blogger.com/profile/17900773020510714946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_u5tMWln_Ie8/SRH3NgLBsHI/AAAAAAAAAAY/p_G-WB2DRaA/S220/author_photo.php.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_u5tMWln_Ie8/S6Izgd_XcvI/AAAAAAAAARQ/pMIqMbOgAnk/s72-c/atl.png' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5749374620125186414.post-2393432359444410631</id><published>2010-03-17T01:52:00.000-07:00</published><updated>2010-03-17T07:48:04.631-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='eclipsecon'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='amalgamation'/><category scheme='http://www.blogger.com/atom/ns#' term='modeling'/><title type='text'>Eclipse Amalgamation 2.0</title><content type='html'>&lt;span style="font-style: italic;"&gt;I'm waiting for a nightly M6 Modeling package to get downloaded on my laptop. As I've got a few hours to wait getting it I'll use this chance to give news about the &lt;/span&gt;&lt;a style="font-style: italic;" href="http://www.eclipse.org/modeling/amalgam/"&gt;Amalgamation project&lt;/a&gt;&lt;span style="font-style: italic;"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;It's a well known fact that the Eclipse Modeling Project is myriad of small focused projects, &lt;a href="http://kenn-hussey.blogspot.com/"&gt;Kenn&lt;/a&gt; is working on sanity checks for each of those project, &lt;span style="font-weight: bold;"&gt;more than 50 &lt;/span&gt; !  The benefits of this organization is that you can choose which bits you want to use depending on your use case but this flexibility come to a cost: making sure there is no overlap between proposals is often tricky and making sure those projects taken as a whole are providing a consistent platform is even more challenging.&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_u5tMWln_Ie8/S6DqyN0fxrI/AAAAAAAAARI/gjLiFrDCZ6U/s1600-h/puzzle.jpg"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 220px;" src="http://2.bp.blogspot.com/_u5tMWln_Ie8/S6DqyN0fxrI/AAAAAAAAARI/gjLiFrDCZ6U/s320/puzzle.jpg" alt="" id="BLOGGER_PHOTO_ID_5449613697542506162" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;A few years ago the Eclipse Modeling Amalgamation project was created  and started by providing Eclipse distros tailored for specific needs and an "All Eclipse Modeling in One Package" distro through EPP. At some point the project staled and during last October a new team gathered and I've been designated project lead.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Most users and adopters are consuming the Eclipse Modeling Project through the EPP package, one don't have to figure out how to browse and install the projects you need. But this package was including &lt;span style="font-weight: bold;"&gt;all of modeling&lt;/span&gt;, as such it was huge, cluttered, un-tested,  and nobody could really use it.&lt;br /&gt;Downloads of the package felt down and the Eclipse Modeling project has a whole probably suffered from that.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;My first objective for the Amalgam project was to update the package to get a sane one : changing our big messy package to an &lt;b&gt;Eclipse Modeling SDK &lt;/b&gt;composed of the core runtime components and framework :&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-weight: bold;"&gt; EMF core&lt;/span&gt; and its low UI profile companions : &lt;span style="font-weight: bold;"&gt;XSD, Transaction, Validation, Mint&lt;/span&gt; and &lt;span style="font-weight: bold;"&gt;compare&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt; Graphical support with &lt;span style="font-weight: bold;"&gt;GEF&lt;/span&gt; and &lt;span style="font-weight: bold;"&gt;GMF runtime&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt; &lt;span style="font-weight: bold;"&gt;OCL&lt;/span&gt; and &lt;span style="font-weight: bold;"&gt;UML2&lt;/span&gt; : you can't really live without those standards.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-weight: bold;"&gt; CDO&lt;/span&gt;  : it brings EMF - as a framework - to another level with collaborative editing and remote model repository.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This set of features +  Eclipse SDK and Mylyn is composing our new platform, and we went from almost &lt;span style="font-family:courier new;"&gt;400&lt;/span&gt; to  250Mb.  It's still big but hey,&lt;span style="font-weight: bold;"&gt; it's an SDK !&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Still, many more great and useful components are built within the Eclipse Modeling Project and getting those to install was painfull. Mylyn was already providing a solution to that : a discovery UI :&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_u5tMWln_Ie8/S6DlFD8lnRI/AAAAAAAAAQ4/5jOD65RKk4g/s1600-h/discovery.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 268px; height: 320px;" src="http://4.bp.blogspot.com/_u5tMWln_Ie8/S6DlFD8lnRI/AAAAAAAAAQ4/5jOD65RKk4g/s320/discovery.png" alt="" id="BLOGGER_PHOTO_ID_5449607424239836434" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In the meantime during the year this discovery support has been&lt;a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=295273"&gt; moving from Mylyn to P2&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;As a user, having this UI makes my life easier, I can install components without even thinking about where I'll find the pieces and P2 is taking care of the requirements and consistency of my Eclipse installation, I'm looking forward to hea&lt;span&gt;r from your feedback about it when the M6 Package will be out.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This modeling platform is a basis we'll test and polish to get a streamlined user experience and we'll have to organize ourselves to make sure to release a tested, used, and clean platform.  The &lt;a href="http://www.eclipsecon.org/2010/sessions/sessions?id=1528"&gt;Eclipse Modeling Panel &lt;/a&gt;will be a perfect time to give your &lt;span style="font-weight: bold;"&gt;opinion and feedback&lt;/span&gt;, do not miss it, it's on Monday !&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5749374620125186414-2393432359444410631?l=model-driven-blogging.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://model-driven-blogging.blogspot.com/feeds/2393432359444410631/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5749374620125186414&amp;postID=2393432359444410631' title='2 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/2393432359444410631'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/2393432359444410631'/><link rel='alternate' type='text/html' href='http://model-driven-blogging.blogspot.com/2010/03/eclipse-amalgamation-20.html' title='Eclipse Amalgamation 2.0'/><author><name>Cédric Brun</name><uri>http://www.blogger.com/profile/17900773020510714946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_u5tMWln_Ie8/SRH3NgLBsHI/AAAAAAAAAAY/p_G-WB2DRaA/S220/author_photo.php.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_u5tMWln_Ie8/S6DqyN0fxrI/AAAAAAAAARI/gjLiFrDCZ6U/s72-c/puzzle.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5749374620125186414.post-6616394046927386636</id><published>2010-03-11T08:31:00.000-08:00</published><updated>2010-03-11T09:24:34.814-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gsoc'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><title type='text'>Its time already !</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_u5tMWln_Ie8/S5kitxhsTnI/AAAAAAAAAQg/JUlWMqJZnbc/s1600-h/calendar.jpg"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 240px;" src="http://3.bp.blogspot.com/_u5tMWln_Ie8/S5kitxhsTnI/AAAAAAAAAQg/JUlWMqJZnbc/s320/calendar.jpg" alt="" id="BLOGGER_PHOTO_ID_5447423394065436274" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;You're a computer science or engineer student, you love open source and would like to be involved in one of the greatest OSS project of all times ? &lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.eclipse.org/soc/images/soc.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 318px; height: 197px;" src="http://www.eclipse.org/soc/images/soc.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;You're lucky, the Google Summer of Code 2010 is starting and is a perfect moment to join the Eclipse community.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If you're a commiter you can throw your idea on the &lt;a href="http://wiki.eclipse.org/Google_Summer_of_Code_2010_Ideas"&gt;wiki page&lt;/a&gt;, if you're a student contact the development team or provide your own ideas.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I provided a few of idea, here are those who got most of the votes at Obeo :&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-weight: bold;"&gt;EMF Shell&lt;/span&gt;, This one is geekish : providing an environement with "shell like" commands to manipulate models. One would expect wc to count model elements,  grep to filter models elements, cd to move within models, ls,  sed to substitute, and all the other commands which could be useful in this context.&lt;br /&gt;Haven't you ever dreamed to filter the opened view of your e4 modeled workbench using &lt;span style="font-family:courier new;"&gt;grep&lt;/span&gt; ?&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_u5tMWln_Ie8/S5kj0G0-FxI/AAAAAAAAAQo/QYyJvrueugE/s1600-h/terminal.jpg"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 240px;" src="http://2.bp.blogspot.com/_u5tMWln_Ie8/S5kj0G0-FxI/AAAAAAAAAQo/QYyJvrueugE/s320/terminal.jpg" alt="" id="BLOGGER_PHOTO_ID_5447424602374280978" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Now that SWT-QT &lt;a href="http://www.compeople.eu/blog/?cat=4"&gt;seems to be a reality, &lt;/a&gt;I can't prevent myself to dream about a GEF port on QT. QT has amazing graphical capabilities and provide the best performances on every platform around there. GEF is great, but is it ready for next gen graphical modelers ?&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://doc.trolltech.com/qq/32/images/qq32-graphics-effects.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 352px; height: 304px;" src="http://doc.trolltech.com/qq/32/images/qq32-graphics-effects.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;Go and have &lt;a href="http://doc.qt.nokia.com/4.6/examples.html"&gt;a look on the demos.&lt;/a&gt; That could be a game changer for graphical modeling let's call it &lt;span style="font-weight: bold;"&gt;CuteGEF&lt;/span&gt; :)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Of course Modeling in general, &lt;span style="font-weight: bold;"&gt;EMF Compare&lt;/span&gt; and &lt;span style="font-weight: bold;"&gt;Amalgam&lt;/span&gt; topics are on&lt;a href="http://wiki.eclipse.org/Google_Summer_of_Code_2010_Ideas"&gt; the wiki page, you have plenty of subjects to choose from !&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Please, if you're a student and are interested in participating to the GSOC, do not wait ! Work with the projects to prepare your application !&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5749374620125186414-6616394046927386636?l=model-driven-blogging.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://model-driven-blogging.blogspot.com/feeds/6616394046927386636/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5749374620125186414&amp;postID=6616394046927386636' title='1 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/6616394046927386636'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/6616394046927386636'/><link rel='alternate' type='text/html' href='http://model-driven-blogging.blogspot.com/2010/03/its-time-already.html' title='Its time already !'/><author><name>Cédric Brun</name><uri>http://www.blogger.com/profile/17900773020510714946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_u5tMWln_Ie8/SRH3NgLBsHI/AAAAAAAAAAY/p_G-WB2DRaA/S220/author_photo.php.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_u5tMWln_Ie8/S5kitxhsTnI/AAAAAAAAAQg/JUlWMqJZnbc/s72-c/calendar.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5749374620125186414.post-4997940111087935286</id><published>2010-03-04T05:25:00.000-08:00</published><updated>2010-03-04T05:33:16.509-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ecore'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='acceleo'/><title type='text'>Ecore In Colors (In Motion)</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_u5tMWln_Ie8/S4-1fNC2YxI/AAAAAAAAAQY/zmAJo1L9Qyg/s1600-h/ecoreincolorsplay.png"&gt;&lt;br /&gt;&lt;/a&gt;Speaking about &lt;a href="http://model-driven-blogging.blogspot.com/2010/02/ecore-in-colors.html"&gt;Ecore In Colors&lt;/a&gt;, If you're interested in here is a small flash demo showing the kind of interactions you can specify in a Viewpoint Specification Model and the resulting modeler you get :&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://literate.modeling.free.fr/modeling/designer/EcoreInColors.htm"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 246px; height: 195px;" src="http://4.bp.blogspot.com/_u5tMWln_Ie8/S4-1fNC2YxI/AAAAAAAAAQY/zmAJo1L9Qyg/s400/ecoreincolorsplay.png" alt="" id="BLOGGER_PHOTO_ID_5444770022196405010" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;By the way, Freddy convinced me to join the Twitter community (at last! )  its going on &lt;a href="http://twitter.com/bruncedric"&gt;here.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5749374620125186414-4997940111087935286?l=model-driven-blogging.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://model-driven-blogging.blogspot.com/feeds/4997940111087935286/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5749374620125186414&amp;postID=4997940111087935286' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/4997940111087935286'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/4997940111087935286'/><link rel='alternate' type='text/html' href='http://model-driven-blogging.blogspot.com/2010/03/ecore-in-colors-in-motion.html' title='Ecore In Colors (In Motion)'/><author><name>Cédric Brun</name><uri>http://www.blogger.com/profile/17900773020510714946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_u5tMWln_Ie8/SRH3NgLBsHI/AAAAAAAAAAY/p_G-WB2DRaA/S220/author_photo.php.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_u5tMWln_Ie8/S4-1fNC2YxI/AAAAAAAAAQY/zmAJo1L9Qyg/s72-c/ecoreincolorsplay.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5749374620125186414.post-5185109365815226815</id><published>2010-03-01T00:40:00.001-08:00</published><updated>2010-03-01T02:51:44.758-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='obeo'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='community'/><category scheme='http://www.blogger.com/atom/ns#' term='acceleo'/><category scheme='http://www.blogger.com/atom/ns#' term='business'/><title type='text'>Unusual Propulsion System</title><content type='html'>It's been more than four years now since I joined the &lt;span style="font-style: italic;"&gt;just founded&lt;/span&gt; Obeo company and started to be involved in the Eclipse Community. I had the chance to join one of the few French companies integrating the &lt;span style="font-weight: bold;"&gt;Free Software and OSS movement in its business model and plans&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;At that time most companies were keeping an eye on this movement from the side, not getting involved more than by consuming what the movement was producing - that's all.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_u5tMWln_Ie8/S4uG_Hn6LQI/AAAAAAAAAPY/Q4T8HWzh-T8/s1600-h/AJL_7926_275.jpg"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 267px;" src="http://4.bp.blogspot.com/_u5tMWln_Ie8/S4uG_Hn6LQI/AAAAAAAAAPY/Q4T8HWzh-T8/s400/AJL_7926_275.jpg" alt="" id="BLOGGER_PHOTO_ID_5443592993543695618" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;My choice was not a hard one at that time, it wasn't hard to find  a job as a software engineer but it was hard to find a FOSS focused job within a company having realistic plans. Any outcome for this journey would have taught me a lot.&lt;br /&gt;&lt;br /&gt;Since then, the river froze for many around the world, every day is providing evidences of this.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_u5tMWln_Ie8/S4uFmlJ6bQI/AAAAAAAAAPI/H9Hpms-l_rw/s1600-h/AJL_7851_245.jpg"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 266px;" src="http://2.bp.blogspot.com/_u5tMWln_Ie8/S4uFmlJ6bQI/AAAAAAAAAPI/H9Hpms-l_rw/s400/AJL_7851_245.jpg" alt="" id="BLOGGER_PHOTO_ID_5443591472462589186" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;But the river being frozen and nobody going there doesn't mean you should not or could not go !&lt;br /&gt;&lt;br /&gt;An&lt;span style="font-weight: bold;"&gt; unusual propulsion system&lt;/span&gt; can lead you to amazing places.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_u5tMWln_Ie8/S4uGVaq1DEI/AAAAAAAAAPQ/zxFjSGBhxjM/s1600-h/AJL_7880_256.jpg"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 266px;" src="http://4.bp.blogspot.com/_u5tMWln_Ie8/S4uGVaq1DEI/AAAAAAAAAPQ/zxFjSGBhxjM/s400/AJL_7880_256.jpg" alt="" id="BLOGGER_PHOTO_ID_5443592277101710402" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Despite the cold and without any kind of VC's heating, Obeo grew from a 4 men company to a 40 men one.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_u5tMWln_Ie8/S4uGVaq1DEI/AAAAAAAAAPQ/zxFjSGBhxjM/s1600-h/AJL_7880_256.jpg"&gt;&lt;br /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_u5tMWln_Ie8/S4uKokz_KSI/AAAAAAAAAP4/xtx-uWEK41Y/s1600-h/heroncut.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 292px; height: 400px;" src="http://3.bp.blogspot.com/_u5tMWln_Ie8/S4uKokz_KSI/AAAAAAAAAP4/xtx-uWEK41Y/s400/heroncut.png" alt="" id="BLOGGER_PHOTO_ID_5443597004288502050" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The Eclipse/Obeo relationship is a symbiosis. Obeo's involvement in Eclipse is huge : we're the unique french company being a strategic member of the Eclipse foundation, leading  &lt;a href="http://www.eclipse.org/modeling/amalgam/"&gt;Amalgamation&lt;/a&gt;, &lt;a href="http://www.eclipse.org/acceleo"&gt;Acceleo&lt;/a&gt;, &lt;a href="http://www.eclipse.org/acceleo"&gt; &lt;/a&gt;&lt;a href="http://www.eclipse.org/stp/sca/"&gt;SCA Tools&lt;/a&gt;, &lt;a href="http://www.eclipse.org/modeling/emft/?project=eef"&gt;EEF&lt;/a&gt;, &lt;a href="http://www.eclipse.org/modeling/emf/?project=compare#compare"&gt;EMF Compare&lt;/a&gt;  and working extensively on other key components like &lt;a href="http://www.eclipse.org/m2m/atl/"&gt;ATL&lt;/a&gt;, &lt;a href="http://www.eclipse.org/modeling/gmf/"&gt;GMF&lt;/a&gt;, &lt;a href="http://www.eclipse.org/modeling/mdt/?project=ocl"&gt;OCL&lt;/a&gt;, &lt;a href="http://www.eclipse.org/modeling/mdt/?project=papyrus"&gt;Papyrus&lt;/a&gt;, &lt;a href="http://www.eclipse.org/swtbot/"&gt;SWTBot&lt;/a&gt;. We're doing so in a completely open and transparent way : contributors &lt;a href="http://www.eclipse.org/committers/"&gt;among others&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_u5tMWln_Ie8/S4uHkoUtLcI/AAAAAAAAAPg/a52abes6pp0/s1600-h/AJL_8038_302.jpg"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 266px;" src="http://1.bp.blogspot.com/_u5tMWln_Ie8/S4uHkoUtLcI/AAAAAAAAAPg/a52abes6pp0/s400/AJL_8038_302.jpg" alt="" id="BLOGGER_PHOTO_ID_5443593637976681922" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;We're working a lot for the community, but  we are earning back in many ways&lt;span style="font-weight: bold;"&gt; : Eclipse is our &lt;/span&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;unusual propulsion system&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;.&lt;/span&gt; Thanks to everybody, from the users to the contributors and the &lt;a href="http://www.eclipse.org/org/foundation/staff.php"&gt;foundation staff  &lt;/a&gt;for making such a journey possible.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_u5tMWln_Ie8/S4uMFL8YiRI/AAAAAAAAAQA/1iwlXK6m2Sc/s1600-h/AJL_8408_400.jpg"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 266px;" src="http://2.bp.blogspot.com/_u5tMWln_Ie8/S4uMFL8YiRI/AAAAAAAAAQA/1iwlXK6m2Sc/s400/AJL_8408_400.jpg" alt="" id="BLOGGER_PHOTO_ID_5443598595340667154" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_u5tMWln_Ie8/S4uJBhuFQ2I/AAAAAAAAAPo/8s5SEkdix68/s1600-h/AJL_8062_315.jpg"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 102px;" src="http://1.bp.blogspot.com/_u5tMWln_Ie8/S4uJBhuFQ2I/AAAAAAAAAPo/8s5SEkdix68/s400/AJL_8062_315.jpg" alt="" id="BLOGGER_PHOTO_ID_5443595233931903842" border="0" /&gt;&lt;/a&gt;&lt;span style="font-style: italic;font-size:85%;" &gt;Thanks to Jean-Luc for the  awesome &lt;a href="http://www.hobie-kayak.com/cms/"&gt;Kayaks&lt;/a&gt;  trek and pictures :)&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5749374620125186414-5185109365815226815?l=model-driven-blogging.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://model-driven-blogging.blogspot.com/feeds/5185109365815226815/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5749374620125186414&amp;postID=5185109365815226815' title='2 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/5185109365815226815'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/5185109365815226815'/><link rel='alternate' type='text/html' href='http://model-driven-blogging.blogspot.com/2010/03/unusual-propulsion-system.html' title='Unusual Propulsion System'/><author><name>Cédric Brun</name><uri>http://www.blogger.com/profile/17900773020510714946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_u5tMWln_Ie8/SRH3NgLBsHI/AAAAAAAAAAY/p_G-WB2DRaA/S220/author_photo.php.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_u5tMWln_Ie8/S4uG_Hn6LQI/AAAAAAAAAPY/Q4T8HWzh-T8/s72-c/AJL_7926_275.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5749374620125186414.post-7976872474991518970</id><published>2010-02-08T07:58:00.001-08:00</published><updated>2010-02-08T08:45:38.791-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ecore'/><category scheme='http://www.blogger.com/atom/ns#' term='graphical'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><title type='text'>Ecore In Colors</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_u5tMWln_Ie8/S3A7N2Z1h4I/AAAAAAAAAN4/BRB5tzTYZoQ/s1600-h/layerdefinition.png"&gt;&lt;/a&gt;I landed on a few articles about "&lt;i&gt;&lt;a href="http://en.wikipedia.org/wiki/UML_colors"&gt;UML in Colors&lt;/a&gt;&lt;/i&gt;" lately, I enjoyed reading &lt;a href="http://knol.google.com/k/stephen-palmer/object-modelling-in-colour#"&gt;those&lt;/a&gt; as modeling is used here as a design tool and support for efficient communication. It also made me think : that's a nice use case for our &lt;a href="http://www.obeo.fr/pages/obeo-designer/"&gt;extensible modeling environmen&lt;/a&gt;t !&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The Amalgamation book is already describing how to define your own "Domain Neutral Component" model and create the graphical modeler thanks to GMF. Let's take an existing formalism for a change and as I like Ecore, I'll pick Ecore.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here is the diagram editor before the extension, quite boring isn't it ? &lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;img src="http://4.bp.blogspot.com/_u5tMWln_Ie8/S3A7bzr-3BI/AAAAAAAAAOA/uA41TAikiik/s400/ecorenotincolor.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5435910099153378322" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 321px; " /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); "&gt;&lt;div&gt;We'll add an "archetypes" layer for the Ecore modeler, this layer only contains a specialization of the container mapping definition used to display the EClasses in the Ecore modeler.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;img src="http://3.bp.blogspot.com/_u5tMWln_Ie8/S3A7N2Z1h4I/AAAAAAAAAN4/BRB5tzTYZoQ/s400/layerdefinition.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5435909859364407170" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 159px; " /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="color:#0000EE;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="color:#0000EE;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;Specializing the diagram definition is mainly about adding a few new conditional styles (for the colors)  and a few tools in the palette. I decided to use Ecore's annotation to keep the information about "being an archetyped EClass". Here is the full definition :&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;img src="http://4.bp.blogspot.com/_u5tMWln_Ie8/S3A8qZl4sRI/AAAAAAAAAOY/t1SJdwPYnz8/s400/diagramdefinitionextension.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5435911449358151954" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 254px; " /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Let's have a closer look on a few user interactions : adding the original EClass mapping in "extra mappings" of the tool definition allows me to define modeling assistant accelerators to contextually change an archetype:&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;img src="http://2.bp.blogspot.com/_u5tMWln_Ie8/S3A8kbH6T_I/AAAAAAAAAOQ/Z4_ezW7N4fk/s400/colorswitchmodelingassistant.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5435911346690084850" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 246px; height: 195px; " /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;span class="Apple-style-span" style="-webkit-text-decorations-in-effect: underline; "&gt;&lt;img src="http://1.bp.blogspot.com/_u5tMWln_Ie8/S3A8_eY1FXI/AAAAAAAAAOw/8z4JoiOYMUw/s400/archetypepalette.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5435911811422819698" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 183px; height: 167px; " /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;span class="Apple-style-span" style="-webkit-text-decorations-in-effect: underline; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I also used the tooltips on my tools to help the user identify the archetypes :&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_u5tMWln_Ie8/S3A81MO8mkI/AAAAAAAAAOo/7dyB-LDOxGM/s1600-h/tooltooltip.png"&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_u5tMWln_Ie8/S3A8ysWkOKI/AAAAAAAAAOg/0GXFLWHFkks/s1600-h/tooltooltipdefinition.png"&gt;&lt;img src="http://1.bp.blogspot.com/_u5tMWln_Ie8/S3A8ysWkOKI/AAAAAAAAAOg/0GXFLWHFkks/s400/tooltooltipdefinition.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5435911591833122978" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 149px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;img src="http://3.bp.blogspot.com/_u5tMWln_Ie8/S3A81MO8mkI/AAAAAAAAAOo/7dyB-LDOxGM/s400/tooltooltip.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5435911634750839362" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 175px; height: 160px; " /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;And here is the final result !&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;img src="http://4.bp.blogspot.com/_u5tMWln_Ie8/S3A8cTiUUeI/AAAAAAAAAOI/KIDJbk5FmJE/s400/ecoreincolor.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5435911207214404066" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 315px; " /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;Of course &lt;b&gt;not a single line of code&lt;/b&gt; is needed to get this and the modeler specification is automatically deployed adapting the original Ecore one.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Enjoying the colors ? ;)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5749374620125186414-7976872474991518970?l=model-driven-blogging.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://model-driven-blogging.blogspot.com/feeds/7976872474991518970/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5749374620125186414&amp;postID=7976872474991518970' title='3 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/7976872474991518970'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/7976872474991518970'/><link rel='alternate' type='text/html' href='http://model-driven-blogging.blogspot.com/2010/02/ecore-in-colors.html' title='Ecore In Colors'/><author><name>Cédric Brun</name><uri>http://www.blogger.com/profile/17900773020510714946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_u5tMWln_Ie8/SRH3NgLBsHI/AAAAAAAAAAY/p_G-WB2DRaA/S220/author_photo.php.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_u5tMWln_Ie8/S3A7bzr-3BI/AAAAAAAAAOA/uA41TAikiik/s72-c/ecorenotincolor.png' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5749374620125186414.post-9126084208575715219</id><published>2010-01-07T01:34:00.000-08:00</published><updated>2010-01-07T04:57:23.076-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='eclipsecon'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='acceleo'/><category scheme='http://www.blogger.com/atom/ns#' term='modeling'/><title type='text'>Eclipse Modeling Gems for Developers</title><content type='html'>Eclipse is the best modeling platform around there, even &lt;a href="http://ralph-at-eclipse.blog.de/2008/12/05/god-uses-emf-5167368/"&gt;god&lt;/a&gt; knows that. What people tend to ignore is that fact that the Eclipse Modeling components are focused on providing framework and tools to actually get &lt;span style="font-weight: bold;"&gt;some work done&lt;/span&gt;, to &lt;span style="font-weight: bold;"&gt;write better code quicker&lt;/span&gt;, and not &lt;span class="clickable" onclick="'dr4sdgryt(event,"&gt;necessarily model just because it's fun and you can then print huge posters in your office.&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.flickr.com/photos/fish2000/2339467813/"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 267px;" src="http://2.bp.blogspot.com/_u5tMWln_Ie8/S0W9WSDdG6I/AAAAAAAAANo/wpqJudbtE7w/s400/posterdiag.jpg" alt="" id="BLOGGER_PHOTO_ID_5423949516738730914" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;What does that mean ? That means if you're writing code you can be pretty sure Eclipse Modeling might help you, do not wait to long to have a look or you'll waste your time and &lt;a href="http://thhal.blogspot.com/2009/10/lessons-learned-about-modeling.html"&gt;you'll regret that sooner or later&lt;/a&gt;. All those gems are available through the Eclipse Modeling bundle and might help for &lt;span style="font-weight: bold;"&gt;your daily development tasks&lt;/span&gt;. I submitted a standard talk  for EclipseCon to demonstrate how the Eclipse Modeling Projets might &lt;a href="https://www.eclipsecon.org/submissions/2010/view_talk.php?id=1171"&gt;boost your productivity when you integrate them in your development process just like the JDT, PDE or Mylyn, &lt;/a&gt;if you want more info, ask for it through the comments!  I have no doubt &lt;a href="http://oisinh.wordpress.com/"&gt;Oisin&lt;/a&gt; is wrapping up a great event renewing its spirit; I'm looking forward to it !&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_u5tMWln_Ie8/S0XC-kcETDI/AAAAAAAAANw/EOFOIg4Q6rM/s1600-h/econ.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 266px;" src="http://2.bp.blogspot.com/_u5tMWln_Ie8/S0XC-kcETDI/AAAAAAAAANw/EOFOIg4Q6rM/s400/econ.jpg" alt="" id="BLOGGER_PHOTO_ID_5423955706426706994" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;To make this post worthy for you, I'll briefly take a spin to one of those gems focusing on pragmatism : Acceleo.  Acceleo is all about helping you to &lt;span style="font-weight: bold;"&gt;generate code in a consistent way, within Eclipse, in a glimpse&lt;/span&gt;. To do so you usually use a template language and use some kind of expression substitution.  Here the template language is quite powerful, templates might call others and a template might inherit another one. The dispatch to the templates is dynamic depending on the instance type (more specific first) and  on the evaluation of any precondition on the templates (That helps you design your templates in a maintainable way).&lt;br /&gt;&lt;br /&gt;Enough said about the language, lets focus on the tooling to see how easy it is to leverage it for your coding. Let say you've got a specific pattern you reproduce quite a lot in your code and you don't want to bother writing that code again even if you need it, then let's generate it !&lt;br /&gt;&lt;br /&gt;What we've seen is that most of the time you start with an example, and here the example would be the code you write all the day. Acceleo provides a specific tooling to help you&lt;span style="font-weight: bold;"&gt; starting a template from an example :&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://literate.modeling.free.fr/modeling/acceleo/create-from-example-with-advanced-completion-1.htm"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 322px;" src="http://1.bp.blogspot.com/_u5tMWln_Ie8/S0W5V3J-nMI/AAAAAAAAANY/_bf6auqtLPI/s400/initcompletion1.png" alt="" id="BLOGGER_PHOTO_ID_5423945111471824066" border="0" /&gt;&lt;/a&gt;In this video you'll see the new template wizard with the option to initialize it with an existing file content, then I'm leveraging the search &amp;amp; replace smart completion to quickly transform the example to a real template I can apply on a model (&lt;span style="font-style: italic;"&gt;notice how the "for" closing brace completion auto-magically find a coherent place, it's using the text structure to do so&lt;/span&gt;).&lt;br /&gt;&lt;br /&gt;In a few minutes you get a first working generation tailored to your specific needs. Of course here it's Java but it might be &lt;span style="font-weight: bold;"&gt;any language using any framework ! &lt;/span&gt;&lt;br /&gt;As a sidenote the generation engine allows you to define protected areas in your template allowing you to generate code you can then update by hand and then re-generate without loosing anything.&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;br /&gt;Stay tuned for more gems.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="display: block;" id="formatbar_Buttons"&gt;&lt;span class=" on down" style="display: block;" id="formatbar_CreateLink" title="Lien" onmouseover="ButtonHoverOn(this);" onmouseout="ButtonHoverOff(this);" onmouseup="" onmousedown="CheckFormatting(event);FormatbarButton('richeditorframe', this, 8);ButtonMouseDown(this);"&gt;&lt;img src="http://www.blogger.com/img/blank.gif" alt="Lien" class="gl_link" border="0" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5749374620125186414-9126084208575715219?l=model-driven-blogging.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://model-driven-blogging.blogspot.com/feeds/9126084208575715219/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5749374620125186414&amp;postID=9126084208575715219' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/9126084208575715219'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/9126084208575715219'/><link rel='alternate' type='text/html' href='http://model-driven-blogging.blogspot.com/2010/01/eclipse-modeling-gems-for-developers.html' title='Eclipse Modeling Gems for Developers'/><author><name>Cédric Brun</name><uri>http://www.blogger.com/profile/17900773020510714946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_u5tMWln_Ie8/SRH3NgLBsHI/AAAAAAAAAAY/p_G-WB2DRaA/S220/author_photo.php.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_u5tMWln_Ie8/S0W9WSDdG6I/AAAAAAAAANo/wpqJudbtE7w/s72-c/posterdiag.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5749374620125186414.post-1983516783824597404</id><published>2009-10-26T03:50:00.000-07:00</published><updated>2009-10-26T04:14:19.692-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='acceleo'/><title type='text'>Eclipse Summit : here we come !</title><content type='html'>I'm polishing and putting the last touches of goodness in my slides for Eclipse Summit Europe. I'm looking forward to a great event as usual, with this warm and fuzzy feeling you have realizing you're part of such a vibrant community.&lt;br /&gt;&lt;br /&gt;If you are wondering how&lt;span style="font-weight: bold;"&gt; "we" &lt;/span&gt;- the Acceleo projet became&lt;span style="font-weight: bold;"&gt; "we" &lt;/span&gt;the Eclipse Project, do not miss my talk :&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://www.eclipsecon.org/summiteurope2009/sessions?id=971"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_u5tMWln_Ie8/SuWAejDTZII/AAAAAAAAANM/en5P-e3JYNQ/s400/intro.png" alt="" id="BLOGGER_PHOTO_ID_5396860990766933122" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;ESE, even more than EclipseCon, is a nice moment to learn more about all the technologies available at Eclipse and to exchange with the teams behind those. I'm  going to catch you : " &lt;a href="http://www.eclipse.org/ecf/"&gt;projects&lt;/a&gt; &lt;a href="http://www.eclipse.org/projects/project_summary.php?projectid=technology.jwt"&gt;I'm&lt;/a&gt; &lt;a href="http://www.eclipse.org/equinox/"&gt;particularly&lt;/a&gt;  &lt;a href="http://www.eclipse.org/projects/project_summary.php?projectid=technology.egit"&gt;interested&lt;/a&gt; &lt;a href="http://eclipse.org/rap/"&gt;about&lt;/a&gt; ", and ask you questions, even dumb ones ! Please take this chance to do the same about the Eclipse Modeling project !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5749374620125186414-1983516783824597404?l=model-driven-blogging.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://model-driven-blogging.blogspot.com/feeds/1983516783824597404/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5749374620125186414&amp;postID=1983516783824597404' title='7 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/1983516783824597404'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/1983516783824597404'/><link rel='alternate' type='text/html' href='http://model-driven-blogging.blogspot.com/2009/10/eclipse-summit-here-we-come.html' title='Eclipse Summit : here we come !'/><author><name>Cédric Brun</name><uri>http://www.blogger.com/profile/17900773020510714946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_u5tMWln_Ie8/SRH3NgLBsHI/AAAAAAAAAAY/p_G-WB2DRaA/S220/author_photo.php.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_u5tMWln_Ie8/SuWAejDTZII/AAAAAAAAANM/en5P-e3JYNQ/s72-c/intro.png' height='72' width='72'/><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5749374620125186414.post-3244660270746656679</id><published>2009-10-09T06:54:00.000-07:00</published><updated>2009-10-09T08:24:18.244-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='cartography'/><category scheme='http://www.blogger.com/atom/ns#' term='acceleo'/><title type='text'>Exploring Eclipse Plugins: beyond Terra Incognita</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.flickr.com/photos/maxbraun/2722476302/"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 500px; height: 281px;" src="http://farm4.static.flickr.com/3040/2722476302_4bf25ea7b6.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In software engineering the "&lt;span style="font-weight: bold;"&gt;Terra Incognita&lt;/span&gt;" boundary is never far away from where you're standing. Most software are lacking an "overview" documentation or model and you have to open your path yourself through the code trying to understand what's going on.&lt;br /&gt;&lt;br /&gt;That's especially true when you are analyzing a legacy application in some kind of good old language not being considered,  these days, as hype as SCALA . COBOl, NSDK are examples among others, reverse engineering become a requirement and at Obeo we are working hard&lt;a href="http://www.obeo.fr/pages/agility"&gt; providing tooling so&lt;/a&gt; that our customers are able to understand and migrate to other technologies.&lt;br /&gt;&lt;br /&gt;That said you don't need  a flux capacitor requiring 1.21 &lt;em&gt;gigawatts&lt;/em&gt; of electrical power to have this "understanding" issue with technologies. It's still a problem with the application we're building using 2009 ones, let's take the OSGi Bundles for the need of the demonstration.&lt;br /&gt;&lt;br /&gt;I already did a draft implementation of a tooling easing the exploration of Eclipse plugin years ago using GMF,  and we've got this nifty PDE visualization tools based on ZEST, but I was in the mood of trying again to build a tooling from the following principle:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;construct and explore&lt;span style="font-weight: bold;"&gt; step by step&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Now that we built this &lt;a href="http://www.obeo.fr/pages/obeo-designer/features/"&gt;cool technology &lt;/a&gt;enabling you to design your own modeling environment, I decided to give it another try.&lt;br /&gt;&lt;br /&gt;Here is the result, please note that's a &lt;span style="font-weight: bold;"&gt;one day&lt;/span&gt; work  and  the&lt;span style="font-weight: bold;"&gt; underlying runtime is in development&lt;/span&gt; (you might catch a few bugs during the demo). Please also note that the demo capture software is not so friendly with the original color, we are rendering the diagram with more than 256 colors ;)&lt;br /&gt;&lt;br /&gt;The legend is the following :&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_u5tMWln_Ie8/Ss9CzYPaWhI/AAAAAAAAAMQ/tyuq3a9Sym8/s1600-h/legend.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 234px; height: 321px;" src="http://1.bp.blogspot.com/_u5tMWln_Ie8/Ss9CzYPaWhI/AAAAAAAAAMQ/tyuq3a9Sym8/s400/legend.png" alt="" id="BLOGGER_PHOTO_ID_5390600729433627154" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The plugins model is captured thanks to PDE APIs, we're going to explore the Eclipse plugins starting from Mylyn, building groups, and seeing what kind of relations those groups have with each others : dependency and/or extension.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://literate.modeling.free.fr/modeling/designer/plugins/demoplugins.htm"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 297px;" src="http://1.bp.blogspot.com/_u5tMWln_Ie8/Ss9JY9wo0FI/AAAAAAAAAMY/ymmMxNplt1o/s400/cartoplugins.png" alt="" id="BLOGGER_PHOTO_ID_5390607972230025298" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;So now the next step would be to build the&lt;span style="font-weight: bold;"&gt; whole Galileo Map&lt;/span&gt; step by step,  anybody feels like a 21st century Magellan?&lt;br /&gt;&lt;br /&gt;Here are a few extras :&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-weight: bold;"&gt;EMF Core dependencies&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_u5tMWln_Ie8/Ss9MGzFRB0I/AAAAAAAAAMo/PX-4zHJL3bE/s1600-h/emf-deps.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 274px;" src="http://2.bp.blogspot.com/_u5tMWln_Ie8/Ss9MGzFRB0I/AAAAAAAAAMo/PX-4zHJL3bE/s400/emf-deps.jpg" alt="" id="BLOGGER_PHOTO_ID_5390610958660994882" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-weight: bold;"&gt;EMF Core extensions&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_u5tMWln_Ie8/Ss9MT-KUQnI/AAAAAAAAAMw/cPIjj_s79rQ/s1600-h/emf-exts.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 389px; height: 400px;" src="http://1.bp.blogspot.com/_u5tMWln_Ie8/Ss9MT-KUQnI/AAAAAAAAAMw/cPIjj_s79rQ/s400/emf-exts.jpg" alt="" id="BLOGGER_PHOTO_ID_5390611184973267570" border="0" /&gt;&lt;/a&gt;&lt;span style="font-weight: bold;"&gt;Acceleo.org standalone plugins&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_u5tMWln_Ie8/Ss9M0_kDu7I/AAAAAAAAAM4/KnHB3IIzfbc/s1600-h/carto_acceleo_standalone.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 245px;" src="http://4.bp.blogspot.com/_u5tMWln_Ie8/Ss9M0_kDu7I/AAAAAAAAAM4/KnHB3IIzfbc/s400/carto_acceleo_standalone.png" alt="" id="BLOGGER_PHOTO_ID_5390611752285354930" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Ok, that's Friday and I'm kinda lazy : no text annotations in the demo for now, may be later if I've got thousand questions through the comments..&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5749374620125186414-3244660270746656679?l=model-driven-blogging.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://model-driven-blogging.blogspot.com/feeds/3244660270746656679/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5749374620125186414&amp;postID=3244660270746656679' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/3244660270746656679'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/3244660270746656679'/><link rel='alternate' type='text/html' href='http://model-driven-blogging.blogspot.com/2009/10/exploring-eclipse-plugins-beyond-terra.html' title='Exploring Eclipse Plugins: beyond Terra Incognita'/><author><name>Cédric Brun</name><uri>http://www.blogger.com/profile/17900773020510714946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_u5tMWln_Ie8/SRH3NgLBsHI/AAAAAAAAAAY/p_G-WB2DRaA/S220/author_photo.php.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm4.static.flickr.com/3040/2722476302_4bf25ea7b6_t.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5749374620125186414.post-8062935893527033571</id><published>2009-09-29T06:57:00.000-07:00</published><updated>2009-09-29T09:09:44.397-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='designer'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='acceleo'/><category scheme='http://www.blogger.com/atom/ns#' term='modeling'/><title type='text'>Having more control ...</title><content type='html'>Who never asked for more time to focus on things that matters, like, for instance, &lt;a href="http://mariot-thoughts.blogspot.com/2009/09/nathalie-effect-goals-tests-and-patches.html"&gt;gigantic barbecues&lt;/a&gt; ?&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_u5tMWln_Ie8/SsIi1OL6w-I/AAAAAAAAALw/IpAvHoRsmME/s1600-h/100_9865.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 273px;" src="http://3.bp.blogspot.com/_u5tMWln_Ie8/SsIi1OL6w-I/AAAAAAAAALw/IpAvHoRsmME/s400/100_9865.JPG" alt="" id="BLOGGER_PHOTO_ID_5386906402025030626" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;And then you fulminate against this tool which should help you and which is not,it's just another burden placed on you to provide this documentation nobody will ever maintain or even read. I&lt;span style="font-style: italic;"&gt;s that what modeling is about&lt;/span&gt; ?&lt;br /&gt;&lt;br /&gt;Life as a software user is often harsh, especially as you have, most of the time, no &lt;span style="font-weight: bold;"&gt;control&lt;/span&gt; at all on the software you use. As a developer it's even more difficult as you have an idea on what's going on behind the scene, and not having control is something you just can't handle now that so much open-source products are providing you this power.&lt;br /&gt;&lt;br /&gt;If you had control on your tools, if you could adapt it or even easily define it, then you could focus on useful things. &lt;span style="font-weight: bold;"&gt;Modeling&lt;/span&gt; can bring it back to you, not modeling like in UML Modelers, modeling like formalizing your domain model as a way to capture your though or your coding tasks.&lt;br /&gt;&lt;br /&gt;A Model doesn't have to be high level, a model doesn't have to provide as much information as your source code, a model is just here to help you answer questions about what you're doing.&lt;br /&gt;If you can't say, for a given model what kind of questions it's helping you to answer, then your model is just not relevant, it's not a model, let's call that &lt;span style="font-weight: bold;"&gt;boxes with edges.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;And now let's take a small example, you wants to define a software using components which are providing services, then you wants to assign these "logical" components to Eclipse plugins, here is a model definition you can come up with :&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_u5tMWln_Ie8/SsIbD5F8ZMI/AAAAAAAAALQ/pHQPTzsglpQ/s1600-h/ecoremodel.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 372px;" src="http://4.bp.blogspot.com/_u5tMWln_Ie8/SsIbD5F8ZMI/AAAAAAAAALQ/pHQPTzsglpQ/s400/ecoremodel.png" alt="" id="BLOGGER_PHOTO_ID_5386897857967842498" border="0" /&gt;&lt;/a&gt;From an instance of a model you can answer the questions : how is split my application ? what services are provided and required by who ?  And how these components are linked to the Eclipse plugins I'm coding ?&lt;br /&gt;&lt;br /&gt;From now you can either capture an instance and start working thanks from EMF Dynamic support , or specify a tooling to ease this capture. If a diagram is a good representation for your problem, pick it, if it's not, pick a tabular, tree or even textual representation.&lt;br /&gt;&lt;br /&gt;The following demo describe a tooling specification (click on the image! ) at the top, the specification, at the bottom, the tooling which is dynamically adapting itself to the specification.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://literate.modeling.free.fr/modeling/designer/overview/OD-specifier.htm"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 247px;" src="http://4.bp.blogspot.com/_u5tMWln_Ie8/SsIxB3hUhoI/AAAAAAAAAMA/KUFbk1cSiG0/s400/specify.png" alt="" id="BLOGGER_PHOTO_ID_5386898630096669458" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Modeling itself is useful to organize your though, validate your design or even can help to pick the best trade-off for a given architecture. In a &lt;a href="http://model-driven-blogging.blogspot.com/2009/05/viewpoints-enabled-modeling-tools.html"&gt;old post I was showing how a modeling tooling having support for viewpoints&lt;/a&gt; is powerful in this regard.  The next demo is showing you how the developer or analyst, can then leverage the tooling definition (click again !) :&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://literate.modeling.free.fr/modeling/designer/overview/OD-user.htm"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 310px; height: 273px;" src="http://3.bp.blogspot.com/_u5tMWln_Ie8/SsIxEy-DzDI/AAAAAAAAAMI/e1_RyvvdM6o/s400/use.png" alt="" id="BLOGGER_PHOTO_ID_5386899886600546674" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Now you described everything and you're quite happy with the result, why not using this information to help you produce code ? As soon as the modeling environment is linked to the development tasks with code generators, the model is &lt;span style="font-weight: bold;"&gt;not going to be deprecated&lt;/span&gt;, it will be used by the team to get the &lt;span style="font-weight: bold;"&gt;tedious&lt;/span&gt; work done.&lt;br /&gt;&lt;br /&gt;Moreover  when the environment provides you navigation from your code to the model, then to the code, and support for customizing anything in the generated code, then the tool is no more a burden, but a relief. (yet another demo !)&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://literate.modeling.free.fr/modeling/designer/overview/OD-Acceleo_Traceability.htm"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 165px;" src="http://2.bp.blogspot.com/_u5tMWln_Ie8/SsIw0a7QJ8I/AAAAAAAAAL4/AflscsX6aDU/s400/generate.png" alt="" id="BLOGGER_PHOTO_ID_5386900989701440706" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;It's been 3 years now since I arrived in &lt;a href="http://www.obeo.fr/"&gt;Obeo&lt;/a&gt;, and every tool we developed since then has been designed following this motto : "Having more control, not getting in the way and providing value to the developer."&lt;br /&gt;&lt;br /&gt;So far I'm quite happy with the results :)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;ps  : thanks to Jérôme who did the démo&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5749374620125186414-8062935893527033571?l=model-driven-blogging.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://model-driven-blogging.blogspot.com/feeds/8062935893527033571/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5749374620125186414&amp;postID=8062935893527033571' title='2 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/8062935893527033571'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/8062935893527033571'/><link rel='alternate' type='text/html' href='http://model-driven-blogging.blogspot.com/2009/09/having-more-control.html' title='Having more control ...'/><author><name>Cédric Brun</name><uri>http://www.blogger.com/profile/17900773020510714946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_u5tMWln_Ie8/SRH3NgLBsHI/AAAAAAAAAAY/p_G-WB2DRaA/S220/author_photo.php.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_u5tMWln_Ie8/SsIi1OL6w-I/AAAAAAAAALw/IpAvHoRsmME/s72-c/100_9865.JPG' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5749374620125186414.post-3081783941879399542</id><published>2009-09-10T02:32:00.000-07:00</published><updated>2009-09-10T02:45:13.000-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='community'/><category scheme='http://www.blogger.com/atom/ns#' term='acceleo'/><title type='text'>The 09/09/09 09:09 0.9.0 Release</title><content type='html'>Laurent did it not even on purpose, but the latest Acceleo I-build, which is the 0.9 branch, performed well and has this&lt;span style="font-weight: bold;"&gt; golden qualifier&lt;/span&gt; :&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_u5tMWln_Ie8/SqjIhFCOyQI/AAAAAAAAALI/_vSaQyCXIds/s1600-h/acceleo99999.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 206px;" src="http://1.bp.blogspot.com/_u5tMWln_Ie8/SqjIhFCOyQI/AAAAAAAAALI/_vSaQyCXIds/s400/acceleo99999.png" alt="" id="BLOGGER_PHOTO_ID_5379770225506830594" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;So If you're superstitious or a numerology believer, don't miss such a release !&lt;br /&gt;&lt;br /&gt;As a sidenote, the Acceleo Team will be at ESE with the talk : "&lt;a href="http://www.eclipsecon.org/summiteurope2009/sessions?id=971"&gt;From Acceleo.org to Eclipse.org"&lt;/a&gt;  And the EEF project, first consumer in Eclipse of the Acceleo Technology will present : "&lt;a href="http://www.eclipsecon.org/summiteurope2009/sessions?id=946"&gt;EEF you want sexy properties ...&lt;/a&gt;"&lt;br /&gt;&lt;br /&gt;If you're interested in the model power, EMF goodness,  modeling environments, viewpoints based modeling and/or the Eclipse platform in general, let's meet in &lt;a href="http://www.eclipsecon.org/summiteurope2009/"&gt;Ludwigsburg! &lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5749374620125186414-3081783941879399542?l=model-driven-blogging.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://model-driven-blogging.blogspot.com/feeds/3081783941879399542/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5749374620125186414&amp;postID=3081783941879399542' title='3 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/3081783941879399542'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/3081783941879399542'/><link rel='alternate' type='text/html' href='http://model-driven-blogging.blogspot.com/2009/09/090909-0909-090-release.html' title='The 09/09/09 09:09 0.9.0 Release'/><author><name>Cédric Brun</name><uri>http://www.blogger.com/profile/17900773020510714946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_u5tMWln_Ie8/SRH3NgLBsHI/AAAAAAAAAAY/p_G-WB2DRaA/S220/author_photo.php.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_u5tMWln_Ie8/SqjIhFCOyQI/AAAAAAAAALI/_vSaQyCXIds/s72-c/acceleo99999.png' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5749374620125186414.post-2992224150856306838</id><published>2009-08-05T01:11:00.000-07:00</published><updated>2009-08-05T01:18:10.981-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='community'/><category scheme='http://www.blogger.com/atom/ns#' term='acceleo'/><title type='text'>Let's take a step back ...</title><content type='html'>&lt;span style="font-size:100%;"&gt;&lt;br /&gt;Lately I had to step back a bit and have a look on what's going on in the software industry. I think most of us did that lately as big players moved their chess pawns and many new technologies seems to have gained some kind of maturity. Many events happened in the last years being evidences the game rules are changing, are all those web apps white or dark magic ?&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_u5tMWln_Ie8/Snk8tA6oO5I/AAAAAAAAAKo/e0ZoGnCoAhE/s1600-h/img_4682.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 261px;" src="http://4.bp.blogspot.com/_u5tMWln_Ie8/Snk8tA6oO5I/AAAAAAAAAKo/e0ZoGnCoAhE/s400/img_4682.jpg" alt="" id="BLOGGER_PHOTO_ID_5366387175026342802" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;First we've seen this "Web 2.0 move" and what they call "social software" or whatever, then every single app the "base user" would need had been ported to the web, and now most parts of the "meaningful" data are hosted on private servers all over the world. From the beginning, as an FOSS advocate who thinks that freedom matters more than anything else&lt;/span&gt;&lt;span style="font-weight: bold;font-size:100%;" &gt; I was really standing against those apps.&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;br /&gt;Moreover from a technical perspective I couldn't say it was making sense: considering your app container is a web browser, I mean,&lt;/span&gt;&lt;span style="font-style: italic;font-size:100%;" &gt;  it's so poor&lt;/span&gt;&lt;span style="font-size:100%;"&gt; !, that's something which is supposed to be *document centric* and not *interaction centric* you can't really expect more than "drag&amp;amp; drop" from a webapp !&lt;br /&gt;And what's that idea of transforming personal computers to terminals ! It took years to go away from that nonsense and now even the cheapest computer has so much resources ! I'm not even speaking about the "you've got no choice than being connected to the WWW " statement. But now we can say those apps were representatives of a real need for user: another shoot in the software landscape.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_u5tMWln_Ie8/Snk8_LoCH2I/AAAAAAAAAKw/_CfmPV6GIyU/s1600-h/img_4623.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 215px;" src="http://2.bp.blogspot.com/_u5tMWln_Ie8/Snk8_LoCH2I/AAAAAAAAAKw/_CfmPV6GIyU/s400/img_4623.jpg" alt="" id="BLOGGER_PHOTO_ID_5366387487138783074" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;But well, things changed quite a lot, the technology grew and Google played a big part in most of those changes, some webapps are now supporting offline mode, user interfaces and interactions got richer, we've got, at least, a pretty good copycat of 90's user interfaces and as nobody really jumped from that, even on the desktop ...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_u5tMWln_Ie8/Snk9ofunjnI/AAAAAAAAALA/HYnEvChEPP0/s1600-h/img_4702.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 278px; height: 400px;" src="http://4.bp.blogspot.com/_u5tMWln_Ie8/Snk9ofunjnI/AAAAAAAAALA/HYnEvChEPP0/s400/img_4702.jpg" alt="" id="BLOGGER_PHOTO_ID_5366388196909747826" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;And now I'm facing this big paradox, most of the G-technologies are so cool and well designed I would love using them from a daily perspective,   just a quick glance at what Tom is doing or to the E4 effort is enough to make me feel "whoa, our stuffs are so old fashioned, &lt;span style="font-style: italic;"&gt;am I&lt;/span&gt; &lt;/span&gt;&lt;span style="font-style: italic;font-size:100%;" &gt;no more a cool kid ?&lt;/span&gt;&lt;span style="font-size:100%;"&gt;". This path I was considering as doomed have been made brighter by complementary technologies, gears for offline suppport,  GWT to be able to maintain this crappy Javascript and provide nice interactions , an many more enhancements.. And though, I keep thinking that most people would prefer using a desktop app if it would manage to tackle the main webapp assets :&lt;br /&gt;- one click, it works  and everywhere (which is mainly in the case of web aps : register and you're done)&lt;br /&gt;- no re-install, maintenance should be invisible&lt;br /&gt;- don't care about your data, we're taking care of it&lt;br /&gt;&lt;br /&gt;and the &lt;/span&gt;&lt;span style="font-weight: bold;font-size:100%;" &gt;main point&lt;/span&gt;&lt;span style="font-size:100%;"&gt;, in my opinion being :&lt;br /&gt;- you can share and collaborate with others without even having to care about it !&lt;br /&gt;&lt;br /&gt;Those points have been &lt;span style="font-weight: bold;"&gt;missed&lt;/span&gt; by desktop apps, and those points&lt;span style="font-style: italic;"&gt; could&lt;/span&gt; be done with an approach protecting privacy if the people doing it have no interest in trading information. Eclipse is a platform with a great potential especially concerning the "run everywhere, easy install, update and maintain statement", the "collaboration" aspect is probably the one needing much more love to make our favorite project blossom in the following years.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_u5tMWln_Ie8/Snk9ThFfHmI/AAAAAAAAAK4/0cL9X1EmkBc/s1600-h/img_4624.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 267px;" src="http://1.bp.blogspot.com/_u5tMWln_Ie8/Snk9ThFfHmI/AAAAAAAAAK4/0cL9X1EmkBc/s400/img_4624.jpg" alt="" id="BLOGGER_PHOTO_ID_5366387836496846434" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;And now that I washed my mind writting down these opinions I never really had time to organize before,  I'll try to focus my activities around those concerns to make Eclipse easier to use, install, and moreover supporting multi-tiers share and collaboration.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Let's jump forward !&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5749374620125186414-2992224150856306838?l=model-driven-blogging.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://model-driven-blogging.blogspot.com/feeds/2992224150856306838/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5749374620125186414&amp;postID=2992224150856306838' title='2 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/2992224150856306838'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/2992224150856306838'/><link rel='alternate' type='text/html' href='http://model-driven-blogging.blogspot.com/2009/08/lets-take-step-back.html' title='Let&apos;s take a step back ...'/><author><name>Cédric Brun</name><uri>http://www.blogger.com/profile/17900773020510714946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_u5tMWln_Ie8/SRH3NgLBsHI/AAAAAAAAAAY/p_G-WB2DRaA/S220/author_photo.php.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_u5tMWln_Ie8/Snk8tA6oO5I/AAAAAAAAAKo/e0ZoGnCoAhE/s72-c/img_4682.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5749374620125186414.post-6552395144159522586</id><published>2009-07-17T02:42:00.000-07:00</published><updated>2009-07-17T05:07:14.884-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='acceleo'/><title type='text'>Feedback from IT companies leveraging Acceleo</title><content type='html'>The first Eclipse Acceleo Day took place last week and was a pretty nice event., no doubt we'll organize others like that :)&lt;br /&gt;&lt;br /&gt;The day started with business feedback about Acceleo deployement and Model Driven approaches in IT units, more especially &lt;a href="http://www.fr.capgemini.com/"&gt;Cap Gemini&lt;/a&gt;,  &lt;a href="http://www.fr.atosorigin.com/fr-fr/"&gt;Atos Origin&lt;/a&gt;, &lt;a href="http://fr.wikipedia.org/wiki/Orange_Labs"&gt;Orange Labs&lt;/a&gt; and&lt;a href="http://www.bull.com/fr/index.php"&gt; Bull&lt;/a&gt;.  These big IT companies used different approaches to get a higher software quality, quicker, and even more important : easing the maintenance. Each of those approache was valid and was meeting their final goal and Acceleo was a big asset which is &lt;span style="font-style: italic;"&gt;really nice to hear &lt;/span&gt;when you're part of that team :)&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_u5tMWln_Ie8/SmBkMycMnwI/AAAAAAAAAKg/4p6LJ_p4DAo/s1600-h/pres_ban.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 150px;" src="http://2.bp.blogspot.com/_u5tMWln_Ie8/SmBkMycMnwI/AAAAAAAAAKg/4p6LJ_p4DAo/s400/pres_ban.png" alt="" id="BLOGGER_PHOTO_ID_5359393727432138498" border="0" /&gt;&lt;/a&gt;Slides will be available on the event&lt;a href="http://www.acceleo.org/wiki/index.php/EclipseAcceleoDay:Program"&gt; program page.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I really can't summarize all the discussions and presentations in a single post, have a look on &lt;a href="http://eef-modeling.blogspot.com/"&gt;Goulwen's report&lt;/a&gt; which is way more detailled, but there is one feedback which need to be emphasized : &lt;span style="font-style: italic;"&gt;Model Driven Software Development&lt;/span&gt; might sound like a big "corporate" expression quite far from the developers actual concerns which is about agility and quality, but &lt;span style="font-weight: bold;"&gt;it is not&lt;/span&gt;.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.flickr.com/photos/ennor/89019338/"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 375px; height: 500px;" src="http://farm1.static.flickr.com/22/89019338_54807b456b.jpg?v=0" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Using models and leveraging them with code generation techniques is just about that :&lt;span style="font-weight: bold;"&gt; bringing agility to your development process&lt;/span&gt;. With tools like Acceleo which are fully integrated in the Eclipse IDE, the developer has the power to build software systems quicker and better. What we've seen is that most companies are organized in "&lt;span style="font-style: italic;"&gt;one transversal team creating the modeling environment and the corresponding generation templates&lt;/span&gt;", thats a common organization when a company want's to&lt;span style="font-weight: bold;"&gt; capitalize over its tooling and templates&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.flickr.com/photos/steven_wong/2126367609/"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 500px; height: 375px;" src="http://farm3.static.flickr.com/2154/2126367609_2c48da7f3a.jpg?v=0" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Keep in mind one thing : &lt;a href="http://www.obeo.fr"&gt;we&lt;/a&gt; are building tools which are making the task of  creating of such a modeling environment (modelers, code generators or transformers)  &lt;span style="font-weight: bold;"&gt;so easy,&lt;/span&gt; that a developer is able to do it quickly, &lt;span style="font-weight: bold;"&gt;even just for a single project.&lt;/span&gt; You might have a big boost of productivity, quality and consistency on your code just defining a small set of generator templates perfectly tailored to what you want.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.flickr.com/photos/dinomite/"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 500px; height: 375px;" src="http://farm4.static.flickr.com/3599/3468412357_c106b188fa.jpg?v=0" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;So people claiming that Model Driven Development is incompatible with Agile Development are just&lt;span style="font-weight: bold;"&gt; plain wrong&lt;/span&gt;,  the tooling supports this kind of development and make it easier, it will just depend on the organization you pick : if your goal is about defining a process for your whole group so that you get quality and consistency over all your projects, then go ahead with the transversal team and keep in mind you'll have to work on your tooling a lot more to handle all the projects use cases. If you just want to build a given software quicker and better, consider defining a tooling in a few days as it will make your life, &lt;span style="font-weight: bold;"&gt;as a developper, way easier.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5749374620125186414-6552395144159522586?l=model-driven-blogging.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://model-driven-blogging.blogspot.com/feeds/6552395144159522586/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5749374620125186414&amp;postID=6552395144159522586' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/6552395144159522586'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/6552395144159522586'/><link rel='alternate' type='text/html' href='http://model-driven-blogging.blogspot.com/2009/07/feedback-from-it-companies-leveraging.html' title='Feedback from IT companies leveraging Acceleo'/><author><name>Cédric Brun</name><uri>http://www.blogger.com/profile/17900773020510714946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_u5tMWln_Ie8/SRH3NgLBsHI/AAAAAAAAAAY/p_G-WB2DRaA/S220/author_photo.php.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_u5tMWln_Ie8/SmBkMycMnwI/AAAAAAAAAKg/4p6LJ_p4DAo/s72-c/pres_ban.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5749374620125186414.post-6885050748279084818</id><published>2009-07-10T05:38:00.000-07:00</published><updated>2009-07-10T07:44:26.819-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='acceleo'/><title type='text'>Eclipse Acceleo Day is going on...</title><content type='html'>&lt;a href="http://www.eclipse.org/org/press-release/20090618_AcceleoDay.php"&gt;Eclipse Acceleo Day &lt;/a&gt;started this morning. The event is collocated with the "&lt;b&gt;Libre Software Meeting&lt;/b&gt;" at Nantes (France) . Yes, that's right ,we're part of this huge and lively movement which is &lt;b&gt;free software&lt;/b&gt;.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So far the even is going fairly well and many people from convinced users to modeling sceptical ones are attending. Getting feedback from the end user is &lt;b&gt;always valuable.&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I'll keep the Eclipse community in touch with what's going on here, thanks again to &lt;a href="http://freddyallilaire.blogspot.com/"&gt;Freddy&lt;/a&gt; who organized the event and to the foundation staff for their help !&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5749374620125186414-6885050748279084818?l=model-driven-blogging.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://model-driven-blogging.blogspot.com/feeds/6885050748279084818/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5749374620125186414&amp;postID=6885050748279084818' title='1 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/6885050748279084818'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/6885050748279084818'/><link rel='alternate' type='text/html' href='http://model-driven-blogging.blogspot.com/2009/07/eclipse-acceleo-day-is-going-on.html' title='Eclipse Acceleo Day is going on...'/><author><name>Cédric Brun</name><uri>http://www.blogger.com/profile/17900773020510714946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_u5tMWln_Ie8/SRH3NgLBsHI/AAAAAAAAAAY/p_G-WB2DRaA/S220/author_photo.php.jpeg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5749374620125186414.post-3074497838075167991</id><published>2009-06-23T07:58:00.000-07:00</published><updated>2009-06-23T08:14:00.585-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='acceleo'/><category scheme='http://www.blogger.com/atom/ns#' term='galileo'/><title type='text'>Galileo Modeling Package is Here</title><content type='html'>If you're &lt;a href="http://www.eclipse.org/donate/"&gt;a friend&lt;/a&gt; you can download the Galileo packages. The modeling one is here !&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_u5tMWln_Ie8/SkDt0eXPiKI/AAAAAAAAAKQ/69068CIWyt4/s1600-h/galileo_modeling_welcome.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 273px;" src="http://3.bp.blogspot.com/_u5tMWln_Ie8/SkDt0eXPiKI/AAAAAAAAAKQ/69068CIWyt4/s400/galileo_modeling_welcome.png" alt="" id="BLOGGER_PHOTO_ID_5350537843075680418" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Please notice the great "&lt;span style="font-weight: bold;"&gt;What's New&lt;/span&gt;" page with live content :&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_u5tMWln_Ie8/SkDwCZQRauI/AAAAAAAAAKY/Ca_6P_GlSYY/s1600-h/galileo_modeling_acceleo.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 273px;" src="http://1.bp.blogspot.com/_u5tMWln_Ie8/SkDwCZQRauI/AAAAAAAAAKY/Ca_6P_GlSYY/s400/galileo_modeling_acceleo.png" alt="" id="BLOGGER_PHOTO_ID_5350540281245690594" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Yes, If you're interested in software engineering, If you think &lt;a href="http://www.slideshare.net/merks/the-unbearable-stupidity-of-modeling-presentation"&gt;"modeling is crap"&lt;/a&gt; and you're looking for nice pragmatic tools focused on making things easier, come and join us during the &lt;span style="font-weight: bold;"&gt;Libre Software Meeting  &lt;/span&gt;at Nantes the July 10th for the &lt;a href="http://www.acceleo.org/wiki/index.php/Eclipse_Acceleo_Day"&gt;&lt;span style="font-weight: bold;"&gt;Eclipse Acceleo Day&lt;/span&gt;&lt;/a&gt; !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5749374620125186414-3074497838075167991?l=model-driven-blogging.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://model-driven-blogging.blogspot.com/feeds/3074497838075167991/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5749374620125186414&amp;postID=3074497838075167991' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/3074497838075167991'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/3074497838075167991'/><link rel='alternate' type='text/html' href='http://model-driven-blogging.blogspot.com/2009/06/galileo-modeling-package-is-here.html' title='Galileo Modeling Package is Here'/><author><name>Cédric Brun</name><uri>http://www.blogger.com/profile/17900773020510714946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_u5tMWln_Ie8/SRH3NgLBsHI/AAAAAAAAAAY/p_G-WB2DRaA/S220/author_photo.php.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_u5tMWln_Ie8/SkDt0eXPiKI/AAAAAAAAAKQ/69068CIWyt4/s72-c/galileo_modeling_welcome.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5749374620125186414.post-6597968654399650768</id><published>2009-06-16T03:30:00.000-07:00</published><updated>2009-06-16T01:32:09.406-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='acceleo'/><title type='text'>Quick glimpse at Galileo Modeling Package</title><content type='html'>Eclipse Galileo aka&lt;span style="font-style: italic;"&gt; 3.5 simultaneous release&lt;/span&gt; is coming soon. We now all have this fuzzy feeling when development stops and we stay here a bit dizzy, wondering what we'll do next.&lt;br /&gt;&lt;br /&gt;Yet another release, yet another step in the direction of the best IDE, of the best Platform, of the best Modeling tooling or whatever goal you have. The eco-system is so diverse, every new release can't be reviewed as whole, you can only  savour "just a bite of this big cake".&lt;br /&gt;&lt;br /&gt;Even if I'm quite sensitive to all the good stuffs added in the platform: &lt;span style="font-style: italic;"&gt;as a plugin developper these features makes me happy everyday&lt;/span&gt;, I'm gonna focus on only&lt;span style="font-weight: bold;"&gt; *some* &lt;/span&gt;features of the modeling package for Galileo...&lt;br /&gt;&lt;br /&gt;Each year a few more modeling projects are joining the team for the simultaneous release, you're now getting a full-fledge modeling environment for Galileo.&lt;br /&gt;&lt;br /&gt;Let's design stuffs, that's what models are bout, right ? Thanks to &lt;span style="font-weight: bold;"&gt;EcoreTools&lt;/span&gt;, you now have a nice modeler for your domain models. I only want to say one thing:  the sexyfication of this modeler is great :)  You now have nice gradients, shadows, and many views bringing you stuffs you're used to in the Java tooling : Class hierarchy, Show references and so on..&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_u5tMWln_Ie8/SjOA5c4r7oI/AAAAAAAAAJo/25e-VYWfvW4/s1600-h/ecoretools.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_u5tMWln_Ie8/SjOA5c4r7oI/AAAAAAAAAJo/25e-VYWfvW4/s400/ecoretools.png" alt="" id="BLOGGER_PHOTO_ID_5346758907113762434" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Definitily worth trying !&lt;br /&gt;&lt;br /&gt;If you design your models with a team, you'll be happy to see EMF Compare when you want to merge your changes with those made by your coworkers&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_u5tMWln_Ie8/SjOCEDmmYiI/AAAAAAAAAJw/tWKOVy5kv_8/s1600-h/compare_ecore.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 256px;" src="http://4.bp.blogspot.com/_u5tMWln_Ie8/SjOCEDmmYiI/AAAAAAAAAJw/tWKOVy5kv_8/s400/compare_ecore.png" alt="" id="BLOGGER_PHOTO_ID_5346760188817203746" border="0" /&gt;&lt;/a&gt;Compare graduated and has now the &lt;span style="font-weight: bold;"&gt;1.0&lt;/span&gt; stamp ! It's seamlessly  integrated with CVS, SVN, GIT and can diff and merge any kind of models.&lt;br /&gt;&lt;br /&gt;Speaking about design, &lt;span style="font-weight: bold;"&gt; xText&lt;/span&gt; allows you to design your models using a textual syntax, that's pretty cool and the team worked hard this year, check it out !&lt;br /&gt;&lt;br /&gt;Once you design your stuffs, most of the time you want to transform that into something you can use for your development. There are basically two options here : &lt;span style="font-style: italic;"&gt;model to model&lt;/span&gt; transformation or&lt;span style="font-style: italic;"&gt; model to text&lt;/span&gt; transformation. Each one having pros and cons depending on your use case.&lt;br /&gt;&lt;br /&gt;Eclipse Galileo provides pretty much anything you might want to transform your models, some of them being based on standards :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Model To Text (aka code generation) :&lt;/li&gt;&lt;/ul&gt; &lt;span style="font-weight: bold;"&gt;JET&lt;/span&gt; have been here for quite a long time now providing  a steady and stable code generation technology.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;XPand&lt;/span&gt; and &lt;span style="font-weight: bold;"&gt;Acceleo &lt;/span&gt;joined the release train this year providing template langages with great tooling, debug mode, full featured editors...&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Model To Model :&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;QVT Operationa&lt;/span&gt;l and &lt;span style="font-weight: bold;"&gt;ATL&lt;/span&gt; competes in the model to model area.&lt;br /&gt;&lt;br /&gt;Work on &lt;span style="font-weight: bold;"&gt;ATL&lt;/span&gt; has been focused on user interface and API, that means &lt;span style="font-weight: bold;"&gt;ATL&lt;/span&gt; is now easier to use from both an end-user point of view and developer point of view.&lt;br /&gt;&lt;br /&gt;I looooove the new wizards compared to the old one :)&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_u5tMWln_Ie8/SjOE0NylPyI/AAAAAAAAAJ4/dyT7lEvMEh4/s1600-h/atl3.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 298px;" src="http://3.bp.blogspot.com/_u5tMWln_Ie8/SjOE0NylPyI/AAAAAAAAAJ4/dyT7lEvMEh4/s400/atl3.png" alt="" id="BLOGGER_PHOTO_ID_5346763215208791842" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Acceleo&lt;/span&gt; is a complete rewrite from the Acceleo 2.x versions which made our team "Eclipse Award Winners". One of the thing which is cool with this rewrite is that from the beginning we're making sure the core generator is "standalone" and might be used without Eclipse, something we had a hard time to provide &lt;span style="font-style: italic;"&gt;a posteriori&lt;/span&gt; with Acceleo 2.X .  Another common need is the ability to easily launch your generation from your java code, it's most of the time quite tricky when you use your own language.&lt;br /&gt;&lt;br /&gt;The Acceleo team came with a nice solution : next to every "main-like" template we generate a Java class which is this template API. Then you can easily launch the generation, you just have to create an instance of this java class and launch it.&lt;br /&gt;&lt;br /&gt;Here is a small and dumb template  :&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_u5tMWln_Ie8/SjOtlT55rpI/AAAAAAAAAKA/BC87YWYoy08/s1600-h/acceleo-template.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_u5tMWln_Ie8/SjOtlT55rpI/AAAAAAAAAKA/BC87YWYoy08/s400/acceleo-template.png" alt="" id="BLOGGER_PHOTO_ID_5346808039128805010" border="0" /&gt;&lt;/a&gt;And here is the corresponding Java launcher :&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_u5tMWln_Ie8/SjOto0yhUOI/AAAAAAAAAKI/vAJat8lbXUY/s1600-h/acceleo-java.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_u5tMWln_Ie8/SjOto0yhUOI/AAAAAAAAAKI/vAJat8lbXUY/s400/acceleo-java.png" alt="" id="BLOGGER_PHOTO_ID_5346808099495825634" border="0" /&gt;&lt;/a&gt;Kicking your generation is just a class instantiation and a call to the &lt;span style="font-weight: bold;"&gt;doGenerate( &lt;/span&gt;method ! You have no excuse for not integrating your code generation into your editor.&lt;br /&gt;&lt;br /&gt;In a nutshell Galileo bring the best of modeling with pragmatic components, you can't miss that !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5749374620125186414-6597968654399650768?l=model-driven-blogging.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://model-driven-blogging.blogspot.com/feeds/6597968654399650768/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5749374620125186414&amp;postID=6597968654399650768' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/6597968654399650768'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/6597968654399650768'/><link rel='alternate' type='text/html' href='http://model-driven-blogging.blogspot.com/2009/06/quick-glimpse-at-galileo-modeling.html' title='Quick glimpse at Galileo Modeling Package'/><author><name>Cédric Brun</name><uri>http://www.blogger.com/profile/17900773020510714946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_u5tMWln_Ie8/SRH3NgLBsHI/AAAAAAAAAAY/p_G-WB2DRaA/S220/author_photo.php.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_u5tMWln_Ie8/SjOA5c4r7oI/AAAAAAAAAJo/25e-VYWfvW4/s72-c/ecoretools.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5749374620125186414.post-8577426604884474196</id><published>2009-05-29T05:37:00.000-07:00</published><updated>2009-05-29T07:56:06.558-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='viewpoint'/><category scheme='http://www.blogger.com/atom/ns#' term='acceleo'/><category scheme='http://www.blogger.com/atom/ns#' term='modeling'/><title type='text'>Viewpoints-enabled Modeling Tools</title><content type='html'>This post follows those showing how it's possible to leverage&lt;a href="http://model-driven-blogging.blogspot.com/2009/05/live-models-using-jboss-rules-drools.html"&gt; EMF and JBoss Drools&lt;/a&gt; to get an interactive model getting updated considering business rules,  and how you can get a set of &lt;a href="http://model-driven-blogging.blogspot.com/2009/05/20-minute-graphical-modeler-based-on.html"&gt;graphical modelers&lt;/a&gt; to ease your design tasks and provide feedback while you're building your system.&lt;br /&gt;&lt;br /&gt;Now let's focus on providing &lt;span style="font-style: italic;"&gt;"the right feedback at the right time"&lt;/span&gt;.  When you're designing a system, you're trying to reach the following goal : building it &lt;span style="font-weight: bold;"&gt;nicely&lt;/span&gt; and making sure it fits &lt;span style="font-weight: bold;"&gt;your requirements and contraints&lt;/span&gt;. You're always balancing between different concerns, your system simplicity, agility, performances, safety ...&lt;br /&gt;&lt;br /&gt;Having a good tooling for that is more than important, and the tooling failed since now :  it's always providing many more information or possible actions than what you actually need and not what's your focus&lt;span style="font-weight: bold;"&gt; right now&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Here comes the viewpoints &lt;a href="http://standards.ieee.org/reading/ieee/std_public/description/se/1471-2000_desc.html"&gt;(IEEE)&lt;/a&gt; ,  viewpoints enabled tooling is able to extends, hide, or provide new representations and actions depending on&lt;span style="font-weight: bold;"&gt; what you want to consider&lt;/span&gt;. As building a system is always a trade-off between multiples criteria, you don't want to be overwhelmed with all the constraints feedback, you just want to see &lt;span style="font-weight: bold;"&gt;relevant&lt;/span&gt; information and be able to do &lt;span style="font-weight: bold;"&gt;relevant&lt;/span&gt; actions. The concept is quite similar to the Eclipse perspectives.&lt;br /&gt;&lt;br /&gt;The first demo (a few minutes) provides an overview of the &lt;span style="font-style: italic;"&gt;tooling specification model&lt;/span&gt; we started in the last post. It's been completed with a few more representations, validation rules, and, more important, re-organized in term of &lt;span style="font-weight: bold;"&gt;viewpoints.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_u5tMWln_Ie8/Sh-3ZE0NAyI/AAAAAAAAAJY/bZpXkgra8KQ/s1600-h/flow_viewpointsdefinition.png"&gt;&lt;/a&gt;&lt;a href="http://literate.modeling.free.fr/modeling/designer/ViewpointsDefinition.htm"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 283px;" src="http://3.bp.blogspot.com/_u5tMWln_Ie8/Sh-3ZE0NAyI/AAAAAAAAAJY/bZpXkgra8KQ/s400/flow_viewpointsdefinition.png" alt="" id="BLOGGER_PHOTO_ID_5341189324502008610" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;The following demo (6 minutes) shows the usage of such a tooling, using  (again) the simple "Flow" example.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_u5tMWln_Ie8/Sh_HYmEdJyI/AAAAAAAAAJg/MYRwQDLNTPk/s1600-h/flow_viewpointsusage.png"&gt;&lt;/a&gt;&lt;a href="http://literate.modeling.free.fr/modeling/designer/UsingViewpoints.htm"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 281px;" src="http://1.bp.blogspot.com/_u5tMWln_Ie8/Sh_HYmEdJyI/AAAAAAAAAJg/MYRwQDLNTPk/s400/flow_viewpointsusage.png" alt="" id="BLOGGER_PHOTO_ID_5341206908434720546" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Eclipse &lt;span style="font-weight: bold;"&gt;is&lt;/span&gt; great as a platform and enables you to build great tooling to that your users stay focused on their business issues (which are complex enough already) . That's what we are trying to achieve with this product.&lt;br /&gt;&lt;br /&gt;Moreover, &lt;span style="font-weight: bold;"&gt;Eclipse Modeling&lt;/span&gt; is a gem mine driven by enthusiastic people, don't wait and come with us, &lt;a href="http://msdn.microsoft.com/en-us/oslo/dd727740.aspx"&gt;resistance&lt;/a&gt; is futile ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5749374620125186414-8577426604884474196?l=model-driven-blogging.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://model-driven-blogging.blogspot.com/feeds/8577426604884474196/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5749374620125186414&amp;postID=8577426604884474196' title='2 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/8577426604884474196'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/8577426604884474196'/><link rel='alternate' type='text/html' href='http://model-driven-blogging.blogspot.com/2009/05/viewpoints-enabled-modeling-tools.html' title='Viewpoints-enabled Modeling Tools'/><author><name>Cédric Brun</name><uri>http://www.blogger.com/profile/17900773020510714946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_u5tMWln_Ie8/SRH3NgLBsHI/AAAAAAAAAAY/p_G-WB2DRaA/S220/author_photo.php.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_u5tMWln_Ie8/Sh-3ZE0NAyI/AAAAAAAAAJY/bZpXkgra8KQ/s72-c/flow_viewpointsdefinition.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5749374620125186414.post-1848800102029818548</id><published>2009-05-13T10:02:00.000-07:00</published><updated>2009-05-13T11:21:55.918-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='graphical'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='viewpoint'/><category scheme='http://www.blogger.com/atom/ns#' term='acceleo'/><title type='text'>The 20 minute Graphical Modeler based on Eclipse</title><content type='html'>My last post about the flow model simulation was really missing a demo so that you get the&lt;span style="font-weight: bold;"&gt; "live" &lt;/span&gt;aspect of the model construction. No problem, that's a good occasion to show you a secret product we've been building on&lt;span style="font-weight: bold;"&gt; top of the Eclipse Modeling projects&lt;/span&gt; since a few year now.  In my &lt;a href="http://model-driven-blogging.blogspot.com/2009/02/engineering-dictator-strikes-back.html"&gt;&lt;span style="font-style: italic;"&gt;dictator&lt;/span&gt; position&lt;/a&gt; on this product you can guess I'm quite excited to show you that, &lt;span style="font-weight: bold;"&gt;nothing public came out about it since now&lt;/span&gt; but the first public release is not so far...&lt;br /&gt;&lt;br /&gt;Let's stop the teasing and watch the content,  here are a few flash demos . If you're just interested in the resulting modeler, go directly to the last one showing the live model design. If you don't understand what's about that&lt;span style="font-style: italic;"&gt; flow &lt;/span&gt;stuff or if you're wondering how all that &lt;span style="font-style: italic;"&gt;load&lt;/span&gt; and &lt;span style="font-style: italic;"&gt;capacities&lt;/span&gt; properties gets updated, have a look &lt;a href="http://model-driven-blogging.blogspot.com/2009/05/live-models-using-jboss-rules-drools.html"&gt;on my preceding post.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://literate.modeling.free.fr/modeling/designer/SpecifyModeler.htm"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 201px;" src="http://1.bp.blogspot.com/_u5tMWln_Ie8/SgsLjej2tHI/AAAAAAAAAJI/aKswPsPwwHM/s400/flowdiag_specify.png" alt="" id="BLOGGER_PHOTO_ID_5335370887677260914" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;The first demos are showing the graphical modeler construction. In a few clicks, just defining the concepts you want to display, how you want to display them and how to retrieve them in the semantic model. You get your modeler in a matter of minutes, and you really should not need more than that as it's quite simple.&lt;br /&gt;&lt;br /&gt;I really like the &lt;span style="font-weight: bold;"&gt;"specifying the modeler and using it side by side"&lt;/span&gt; feature even if you need a big display for that and here for the demo I have no choice than scrolling.&lt;br /&gt;&lt;br /&gt;The next demo is focused on defining&lt;span style="font-style: italic;"&gt; "conditional styles"&lt;/span&gt; so that the graphical shapes changes depending on the changes in the semantic model (node/edge sizes and colors), in this demo I also specify the fact that a &lt;span style="font-style: italic;"&gt;CompositeProcessor &lt;/span&gt;reuse the graphical mappings define for the diagram and that I should be able to create a sub diagram on a&lt;span style="font-style: italic;"&gt; CompositeProcessor.&lt;/span&gt;&lt;br /&gt;The request langage I'm using is &lt;span style="font-weight: bold;"&gt;Acceleo&lt;/span&gt;, but you could also use &lt;span style="font-weight: bold;"&gt;OCL&lt;/span&gt;, I tend to prefer simplicity ;)&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://literate.modeling.free.fr/modeling/designer/CustomizeModeler.htm"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 293px;" src="http://4.bp.blogspot.com/_u5tMWln_Ie8/SgsITi7AfhI/AAAAAAAAAJA/THMCeWSDCes/s400/flowdiag_customize.png" alt="" id="BLOGGER_PHOTO_ID_5335367315435322898" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;And at last, after a bit more tweaking  off stage, the usage of this finished &lt;span style="font-weight: bold;"&gt;dynamic modeler&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://literate.modeling.free.fr/modeling/designer/UsingModeler.htm"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 163px;" src="http://2.bp.blogspot.com/_u5tMWln_Ie8/SgsOObST5hI/AAAAAAAAAJQ/WKuM4Re4jt8/s400/flowdiag_usage.png" alt="" id="BLOGGER_PHOTO_ID_5335373824556000786" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;So, &lt;span style="font-weight: bold;"&gt;to be fair&lt;/span&gt;, the final modeler is more a 25 minute modeler than 20, but that said, I get a first working modeler a the minute 10 of the first demo.&lt;br /&gt;&lt;br /&gt;Be sure that's only a tiny portion of what we've been able to achieve leveraging the Eclipse Modeling components (&lt;a href="http://www.eclipse.org/modeling/"&gt;EMF, GMF,&lt;/a&gt; &lt;a href="http://www.acceleo.org"&gt;Acceleo, &lt;/a&gt;&lt;a href="http://www.eclipse.org/modeling/emft/?project=compare#compare"&gt;Compare&lt;/a&gt; just naming a few...) and the Eclipse Platform :  graphic modeler are one thing, but other representation matters and I'm not even speaking about the "&lt;span style="font-style: italic;"&gt;full viewpoint suppor&lt;/span&gt;t".&lt;br /&gt;&lt;br /&gt;Stay tuned for more eye candy ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5749374620125186414-1848800102029818548?l=model-driven-blogging.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://model-driven-blogging.blogspot.com/feeds/1848800102029818548/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5749374620125186414&amp;postID=1848800102029818548' title='4 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/1848800102029818548'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/1848800102029818548'/><link rel='alternate' type='text/html' href='http://model-driven-blogging.blogspot.com/2009/05/20-minute-graphical-modeler-based-on.html' title='The 20 minute Graphical Modeler based on Eclipse'/><author><name>Cédric Brun</name><uri>http://www.blogger.com/profile/17900773020510714946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_u5tMWln_Ie8/SRH3NgLBsHI/AAAAAAAAAAY/p_G-WB2DRaA/S220/author_photo.php.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_u5tMWln_Ie8/SgsLjej2tHI/AAAAAAAAAJI/aKswPsPwwHM/s72-c/flowdiag_specify.png' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5749374620125186414.post-1036180728036140709</id><published>2009-05-05T09:03:00.000-07:00</published><updated>2009-05-07T07:52:42.284-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='modeling kata'/><category scheme='http://www.blogger.com/atom/ns#' term='jboss drools'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='acceleo'/><category scheme='http://www.blogger.com/atom/ns#' term='live model'/><category scheme='http://www.blogger.com/atom/ns#' term='emf'/><title type='text'>Live Models Using JBoss Rules (Drools) and EMF</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Modeling Kata &lt;/span&gt;here again !  Models are useful to describe things, systems, knowledge, basically any information you want to organize and formalize will gain in using a solid formalism like &lt;a href="http://www.eclipse.org/modeling/emf/"&gt;Ecore.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Structuring and describing is nice, but then most of the time you need to evaluate your design. You basically have choices here, one of them is using the validation tools so that any &lt;span style="font-style: italic;"&gt;"error in your design"&lt;/span&gt; is shown to you and so that you can fix it. The drawback of validation is that you can't easily get the &lt;span style="font-weight: bold;"&gt;big picture&lt;/span&gt; of your design quality corresponding to the constraints you defined.&lt;br /&gt;&lt;br /&gt;Who can  say that this bees invading my garden are organized in a nice or poor way ? That's definitely &lt;span style="font-weight: bold;"&gt;not a binary information&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_OJuY9x1lbxI/Se9tLzXRS_I/AAAAAAAAALU/ny6uKiFIev4/s1600-h/essaim_abeilles.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 267px;" src="http://2.bp.blogspot.com/_OJuY9x1lbxI/Se9tLzXRS_I/AAAAAAAAALU/ny6uKiFIev4/s400/essaim_abeilles.jpg" alt="" id="BLOGGER_PHOTO_ID_5327596933736385522" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Another approach is designing your models with tooling &lt;span style="font-weight: bold;"&gt;updating or self-constructing&lt;/span&gt; other part to gives you information about its quality. Let's take a (quite naive but still interesting ;) ) example :&lt;br /&gt;&lt;br /&gt;I defined a formalism for a "flow-like" langage, you can use it to describe &lt;span style="font-style: italic;"&gt;DataSources &lt;/span&gt;and &lt;span style="font-style: italic;"&gt;Processors  &lt;/span&gt;linked by &lt;span style="font-style: italic;"&gt;DataFlows.&lt;/span&gt;  &lt;span style="font-style: italic;"&gt;Processors&lt;/span&gt; and &lt;span style="font-style: italic;"&gt;DataFlows&lt;/span&gt; are capacity bounded, which mean they've got a maximum capacity and under given load will be &lt;span style="font-style: italic;"&gt;iddling&lt;/span&gt; or &lt;span style="font-style: italic;"&gt;over used.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Here is a class diagram displaying the simplest parts of the flow.ecore :&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_u5tMWln_Ie8/SgBrG2UiMCI/AAAAAAAAAIA/O-AZFjFMGSI/s1600-h/flow_ecore.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 319px;" src="http://4.bp.blogspot.com/_u5tMWln_Ie8/SgBrG2UiMCI/AAAAAAAAAIA/O-AZFjFMGSI/s400/flow_ecore.png" alt="" id="BLOGGER_PHOTO_ID_5332379724211695650" border="0" /&gt;&lt;/a&gt;Here I'm mixing both the information I'll describe (a given system with &lt;span style="font-style: italic;"&gt;datasources, processors&lt;/span&gt; and &lt;span style="font-style: italic;"&gt;flows) &lt;/span&gt;and the feedback about my design (the flow element usage).&lt;br /&gt;&lt;br /&gt;Note that every element here might be activated or not (see the &lt;span style="font-style: italic;"&gt;FlowElementStatus&lt;/span&gt; enumeration).&lt;br /&gt;&lt;br /&gt;Now to define my rules updating each values considering the overall model, I basically have the choice either to implement that in Java, or use a Rules Engine. Implementing in Java might look like a good idea but you'll quickly realise that :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;adapting the rules to a constraints which are specific for a project will make you redeploy everything&lt;/li&gt;&lt;li&gt;you'll write code to browse everywhere in the model and update the values depending on your browsing result, and with big models you'll get poor performances&lt;/li&gt;&lt;/ul&gt;That said, this exercise is interesting and might be the subject of another kata.&lt;br /&gt;&lt;br /&gt;You bet I picked the Rules Engine, so that I can get my hands dirty with those strange beasts you (most of the time) never ever want to meet again after you graduated.  I picked &lt;a href="http://www.jboss.org/drools/"&gt;JBoss Drool&lt;/a&gt;&lt;a href="http://www.jboss.org/drools/"&gt;s&lt;/a&gt; which seemd just nice, powerfull, and based on an implementation of a &lt;a href="http://en.wikipedia.org/wiki/Rete_algorithm"&gt;Rete-like algorithm&lt;/a&gt;  - which make it fast - and I have to admit I liked their logo is really cool.&lt;br /&gt;&lt;br /&gt;EMF and Drools are going along really nicely. Drools considers your Java instances as &lt;span style="font-weight: bold;"&gt;facts&lt;/span&gt; and is then really easy to integrate with EMF. EMF provides the generic notification mechanism which make it really easy to integrate with drools so that drools know that something changed and that he might have some work to do.&lt;br /&gt;&lt;br /&gt;Here is the result, let's design a flow related to my work :&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_u5tMWln_Ie8/SgBulP6_2gI/AAAAAAAAAII/ZXC36cNQlO8/s1600-h/flow1_datasource_freddy.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 113px;" src="http://2.bp.blogspot.com/_u5tMWln_Ie8/SgBulP6_2gI/AAAAAAAAAII/ZXC36cNQlO8/s400/flow1_datasource_freddy.png" alt="" id="BLOGGER_PHOTO_ID_5332383545014868482" border="0" /&gt;&lt;/a&gt;&lt;span style="font-style: italic;"&gt;Freddy&lt;/span&gt; is a datasource which produces lots of information (8). He's inactive right now (see the red icon ;) )&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_u5tMWln_Ie8/SgBu5DP-uOI/AAAAAAAAAIQ/57gBnW_QnyM/s1600-h/flow2_datasourcesready.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 176px;" src="http://1.bp.blogspot.com/_u5tMWln_Ie8/SgBu5DP-uOI/AAAAAAAAAIQ/57gBnW_QnyM/s400/flow2_datasourcesready.png" alt="" id="BLOGGER_PHOTO_ID_5332383885210597602" border="0" /&gt;&lt;/a&gt;Let's add &lt;span style="font-style: italic;"&gt;Laurent&lt;/span&gt; which is way more quiet,&lt;span style="font-style: italic;"&gt; "Me" &lt;/span&gt;which is a processor both being a flow target and a flow source, as I'm providing data to&lt;span style="font-style: italic;"&gt; "My Computer"&lt;/span&gt;. My Capacity is 10,  my computer has way more capacity than me.&lt;br /&gt;&lt;br /&gt;Let's connect everybody with &lt;span style="font-style: italic;"&gt;DataFlows&lt;/span&gt;, each of them having a max capacity of 10.&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Freddy&lt;/span&gt; and &lt;span style="font-style: italic;"&gt;Laurent&lt;/span&gt; are both connected to &lt;span style="font-style: italic;"&gt;Me, &lt;/span&gt;and I'm connected to &lt;span style="font-style: italic;"&gt;My Computer&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_u5tMWln_Ie8/SgBvdIgwDsI/AAAAAAAAAIY/PSw8Q-kvT4c/s1600-h/flow3_dataflows_connected.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 181px;" src="http://3.bp.blogspot.com/_u5tMWln_Ie8/SgBvdIgwDsI/AAAAAAAAAIY/PSw8Q-kvT4c/s400/flow3_dataflows_connected.png" alt="" id="BLOGGER_PHOTO_ID_5332384505098407618" border="0" /&gt;&lt;/a&gt;Everybody is inactive, let's activate some part of the system : &lt;span style="font-style: italic;"&gt;Me&lt;/span&gt; and &lt;span style="font-style: italic;"&gt;My Computer&lt;/span&gt;.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_u5tMWln_Ie8/SgBvwgsB5kI/AAAAAAAAAIg/NgkkaIpXUIw/s1600-h/flow4_activate_me.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 180px;" src="http://2.bp.blogspot.com/_u5tMWln_Ie8/SgBvwgsB5kI/AAAAAAAAAIg/NgkkaIpXUIw/s400/flow4_activate_me.png" alt="" id="BLOGGER_PHOTO_ID_5332384838005679682" border="0" /&gt;&lt;/a&gt;As long as &lt;span style="font-style: italic;"&gt;Freddy&lt;/span&gt; and &lt;span style="font-style: italic;"&gt;Laurent&lt;/span&gt; are not there, everything is fine, my usage is&lt;span style="font-style: italic;"&gt; "low"&lt;/span&gt;.&lt;br /&gt;Activating elements in the editor, everything gets updated "on the fly" and the labels are reflecting the current usage of an element.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_u5tMWln_Ie8/SgBwSZ0MeeI/AAAAAAAAAIo/SG_t4EVZt_o/s1600-h/flow5_activate_laurent.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 207px;" src="http://4.bp.blogspot.com/_u5tMWln_Ie8/SgBwSZ0MeeI/AAAAAAAAAIo/SG_t4EVZt_o/s400/flow5_activate_laurent.png" alt="" id="BLOGGER_PHOTO_ID_5332385420276431330" border="0" /&gt;&lt;/a&gt;Now &lt;span style="font-style: italic;"&gt;Laurent&lt;/span&gt; is activated. Everything is still fine (you kind a guess the next step, right ? ;) )&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_u5tMWln_Ie8/SgBwd_G2SdI/AAAAAAAAAIw/RChPwgnFhjc/s1600-h/flow6_activate_freddy.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 159px;" src="http://4.bp.blogspot.com/_u5tMWln_Ie8/SgBwd_G2SdI/AAAAAAAAAIw/RChPwgnFhjc/s400/flow6_activate_freddy.png" alt="" id="BLOGGER_PHOTO_ID_5332385619265341906" border="0" /&gt;&lt;/a&gt;&lt;span style="font-style: italic;"&gt;Freddy&lt;/span&gt; is activated, I'm over stressed (see the red) and even the dataflow from &lt;span style="font-style: italic;"&gt;Freddy&lt;/span&gt; to &lt;span style="font-style: italic;"&gt;me&lt;/span&gt; has quite an high usage (orange color).&lt;br /&gt;&lt;br /&gt;So now I have different options, I can redesign my system in a way that the capacities are higher (for me and/or the dataflow), or split parts of the Freddy flow and distribute it on other processors. I'll be able to try every solution, activate/desactivate elements, and &lt;span style="font-weight: bold;"&gt;see if my system is meeting my constraints or not.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Now let's have a look on how I did that...&lt;br /&gt;&lt;br /&gt;Here are the rules I'm using, quite straightforward and it's easy to put more rules expressing really complicated constraints.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_u5tMWln_Ie8/SgBxQrq11fI/AAAAAAAAAI4/kRj-4I5LQ98/s1600-h/drools_rules.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 368px; height: 400px;" src="http://2.bp.blogspot.com/_u5tMWln_Ie8/SgBxQrq11fI/AAAAAAAAAI4/kRj-4I5LQ98/s400/drools_rules.png" alt="" id="BLOGGER_PHOTO_ID_5332386490220926450" border="0" /&gt;&lt;/a&gt;This language is dedicated to the logic rules definition and is, as a matter of fact, good at it.&lt;br /&gt;&lt;br /&gt;Mixing drools and EMF has just been about setting up an adapter on my resource when loading the model, then if something gets updated, EMF tell drools which instance changed, and drools fire the corresponding rules, chaining them if needed.&lt;br /&gt;&lt;br /&gt;I'm not the first one doing that, googling a bit you'll &lt;a href="http://www.sts.tu-harburg.de/pw-and-m-theses/2006/tibr06.pdf"&gt;find papers.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Quick reminder of what's nice with this approach :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;not re-inventing the wheel again&lt;/li&gt;&lt;li&gt;great expressiveness for your rules&lt;br /&gt;&lt;/li&gt;&lt;li&gt;great performances even with many many many rules&lt;/li&gt;&lt;li&gt;rules are easy to customize and you don't need to change your code to consider new construction rules.&lt;/li&gt;&lt;/ul&gt;Stay tuned and&lt;span style="font-weight: bold;"&gt; feel free to provide feedback&lt;/span&gt; on a similar or different approach !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5749374620125186414-1036180728036140709?l=model-driven-blogging.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://model-driven-blogging.blogspot.com/feeds/1036180728036140709/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5749374620125186414&amp;postID=1036180728036140709' title='1 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/1036180728036140709'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/1036180728036140709'/><link rel='alternate' type='text/html' href='http://model-driven-blogging.blogspot.com/2009/05/live-models-using-jboss-rules-drools.html' title='Live Models Using JBoss Rules (Drools) and EMF'/><author><name>Cédric Brun</name><uri>http://www.blogger.com/profile/17900773020510714946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_u5tMWln_Ie8/SRH3NgLBsHI/AAAAAAAAAAY/p_G-WB2DRaA/S220/author_photo.php.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_OJuY9x1lbxI/Se9tLzXRS_I/AAAAAAAAALU/ny6uKiFIev4/s72-c/essaim_abeilles.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5749374620125186414.post-3773848005745087417</id><published>2009-04-24T05:55:00.000-07:00</published><updated>2009-05-07T07:53:21.950-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='eclipsecon'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='community'/><category scheme='http://www.blogger.com/atom/ns#' term='acceleo'/><title type='text'>Award Winning Acceleo moving to Eclipse</title><content type='html'>Thank you from the&lt;span style="font-weight: bold;"&gt; Acceleo Team &lt;/span&gt;&lt;span style="font-style: italic;"&gt;(unfortunately not complete here, have a look on the team pages for &lt;a href="http://www.acceleo.org/pages/contacts"&gt;core&lt;/a&gt; and &lt;a href="http://www.acceleo.org/pages/contacts-des-modules/"&gt;modules&lt;/a&gt;)&lt;/span&gt; !&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_u5tMWln_Ie8/SfHEb0GwU2I/AAAAAAAAAH4/TAhk-tqIxVw/s1600-h/acceleo_core_team.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 306px;" src="http://3.bp.blogspot.com/_u5tMWln_Ie8/SfHEb0GwU2I/AAAAAAAAAH4/TAhk-tqIxVw/s400/acceleo_core_team.png" alt="" id="BLOGGER_PHOTO_ID_5328255816278496098" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Thanks for all the people involved in Acceleo's winning the "&lt;a href="http://www.eclipse.org/org/foundation/eclipseawards/index.php"&gt;&lt;em&gt;Best Open Source&lt;/em&gt; Eclipse-Based Developer Too&lt;/a&gt;l" price this year.  No doubt you'll be quite pleased to hear that "&lt;span style="font-weight: bold;"&gt;Next-gen Acceleo&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;development is taking place in Eclipse.org&lt;/span&gt; ", &lt;a href="http://www.eclipse.org/modeling/m2t/?project=acceleo#acceleo"&gt;right there&lt;/a&gt;, in the M2T project.&lt;br /&gt;&lt;br /&gt;The next-gen Acceleo has many differences with the Acceleo.org one, especially :&lt;br /&gt;&lt;ul&gt;&lt;li&gt; efficient &lt;span style="font-weight: bold;"&gt;standalone&lt;/span&gt; support right now, that means you can reuse the generation engine even outside of an Eclipse or OSGi context, just put the EMF and OCL jars and you're done.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt; a new &lt;span style="font-weight: bold;"&gt;statically typed&lt;/span&gt; syntax based on the MTL OMG standard&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt; &lt;span style="font-weight: bold;"&gt;aspect-like patterns&lt;/span&gt; to extends existing cartridges.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt; automatically generated &lt;span style="font-weight: bold;"&gt;Java API &lt;/span&gt;for your generation module. It's then really easy to leverage a generation cartridge from your own action or wizard.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;But we keep the fondamentals that made Acceleo.org a success, especially:&lt;br /&gt;&lt;ul&gt;&lt;li&gt; &lt;span style="font-weight: bold;"&gt;Pragmatic vision&lt;/span&gt; : let's make it easy for the 95% stuffs everybody does, let's put Java extension for the remaining 5% stuffs not everybody needs.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt; &lt;span style="font-weight: bold;"&gt;Nifty tooling&lt;/span&gt; : debug, completion, show references, open declaration, highlighting, markers, any feature you expect from an Eclipse Editor is there.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt; &lt;span style="font-weight: bold;"&gt;Community&lt;/span&gt; : the Acceleo.org community has been pretty active in providing a full set of "ready to use cartridges" for a lot of technologies (JEE, PHP, C, Python, C#...).  No doubt this community will follow the project on Eclipse and expects nice pragmatic generators. &lt;a href="http://www.eclipse.org/proposals/eef/"&gt;EEF&lt;/a&gt; is opening the path.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Want's more ? &lt;/span&gt;Here are a few &lt;span style="font-weight: bold;"&gt;demos&lt;/span&gt; :&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Creating a new project From a Sample&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://literate.modeling.free.fr/modeling/acceleo/07-acceleo-new-module.htm"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 332px;" src="http://2.bp.blogspot.com/_u5tMWln_Ie8/SfG9XsroT-I/AAAAAAAAAHo/OKJaK_vtvH0/s400/newproject.png" alt="" id="BLOGGER_PHOTO_ID_5328248048984805346" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Acceleo Eclipse Tooling&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://literate.modeling.free.fr/modeling/acceleo/06-acceleo-editor-features.htm"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 330px;" src="http://1.bp.blogspot.com/_u5tMWln_Ie8/SfG9PcegiMI/AAAAAAAAAHg/yOAQXvYTXtA/s400/editors.png" alt="" id="BLOGGER_PHOTO_ID_5328247907195848898" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Overview of the Acceleo Syntax&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://literate.modeling.free.fr/modeling/acceleo/05-acceleo-syntax.htm"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 333px;" src="http://1.bp.blogspot.com/_u5tMWln_Ie8/SfG9E3zWI_I/AAAAAAAAAHY/aaEqWHCdEYU/s400/syntax.png" alt="" id="BLOGGER_PHOTO_ID_5328247725552444402" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Migrating from the old syntax to the new one&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://literate.modeling.free.fr/modeling/acceleo/10-acceleo-migrate.htm"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 331px;" src="http://3.bp.blogspot.com/_u5tMWln_Ie8/SfG84zaQ8UI/AAAAAAAAAHQ/yFx48PBeQhY/s400/migrate.png" alt="" id="BLOGGER_PHOTO_ID_5328247518215074114" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Want's &lt;span style="font-style: italic;"&gt;more and more&lt;/span&gt; ? Acceleo is part of Galileo and &lt;a href="http://www.eclipse.org/modeling/m2t/downloads/?project=acceleo"&gt;builds are provided&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Do not hesitate to have a try and give feedback on the M2T newsgroup !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5749374620125186414-3773848005745087417?l=model-driven-blogging.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://model-driven-blogging.blogspot.com/feeds/3773848005745087417/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5749374620125186414&amp;postID=3773848005745087417' title='1 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/3773848005745087417'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/3773848005745087417'/><link rel='alternate' type='text/html' href='http://model-driven-blogging.blogspot.com/2009/04/award-winning-acceleo-moving-to-eclipse.html' title='Award Winning Acceleo moving to Eclipse'/><author><name>Cédric Brun</name><uri>http://www.blogger.com/profile/17900773020510714946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_u5tMWln_Ie8/SRH3NgLBsHI/AAAAAAAAAAY/p_G-WB2DRaA/S220/author_photo.php.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_u5tMWln_Ie8/SfHEb0GwU2I/AAAAAAAAAH4/TAhk-tqIxVw/s72-c/acceleo_core_team.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5749374620125186414.post-3216829464798897423</id><published>2009-03-25T13:49:00.000-07:00</published><updated>2009-05-07T08:06:17.370-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='eclipsecon'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='community'/><category scheme='http://www.blogger.com/atom/ns#' term='acceleo'/><title type='text'>Modeling your EclipseCon</title><content type='html'>EclipseCon has been going on for a few days now, and I'm quite happy to say this year's event is great, especially concerning the social interactions. I've been coming here in Santa Clara for a few years now and I had the pleasure to meet, in real life, many of the Eclipse commiters and contributors. That's why going back there now also mean seeing friendly people &lt;span&gt;again and &lt;span style="font-weight: bold;"&gt;having great time&lt;/span&gt; with them.&lt;br /&gt;&lt;br /&gt;It started with the AC meeting on Sunday, which Martin perfectly handled (as usual). It's really nice, for a newcomer in these councils like me, to see that things are going on, and that people are pushing stuffs to make it real ! So please, do not hesitate to &lt;a href="http://www.eclipsecon.org/2009/sessions?id=527"&gt;ask the AC !&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It continued with the tutorials which really helps newcomers to adopt and understand our technologies. That was the occasion to meet many new people which is kind of a refreshing thing :)&lt;br /&gt;&lt;br /&gt;From the &lt;span style="font-weight: bold;"&gt;Modeling&lt;/span&gt; perspective, this years also opens a lot of opportunities, despite the fact that&lt;a href="http://ed-merks.blogspot.com/"&gt; our benevolent dicator  &lt;/a&gt;is not with us right now,  our community is really active and &lt;span style="font-weight: bold;"&gt;pragmatically tackles real world problems&lt;/span&gt;. The modeling BOF was a good example of that, and may be even a bit too much. We have not been able to have a really controversial debate as usual, I guess people keep that kind of stuffs for the numerous e4 events during EclipseCon !&lt;br /&gt;&lt;br /&gt;One of the BOF result you'll soon experiment is that more "business cases" of successful usage of the modeling technologies will be advertised. Basically everybody in the BOF had at least one successful customer story to tell and that kind of feedback could be valuable for the community as a whole.&lt;br /&gt;&lt;br /&gt;Speaking about pragmatic implementations and success, my talk about EMF Compare went really well, the room was filled with people already using, or interested in using modeling !  The corresponding slides are (at last) here :&lt;br /&gt;&lt;div style="width: 425px; text-align: left;" id="__ss_1197177"&gt;&lt;a style="margin: 12px 0pt 3px; font-family: Helvetica,Arial,Sans-serif; font-style: normal; font-variant: normal; font-weight: normal; font-size: 14px; line-height: normal; font-size-adjust: none; font-stretch: normal; display: block; text-decoration: underline;" href="http://www.slideshare.net/cbrun/team-work-with-models-web?type=presentation" title="Team Work With Models Web"&gt;Team Work With Models Web&lt;/a&gt;&lt;object style="margin: 0px;" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=teamworkwithmodelsweb-090325124454-phpapp02&amp;amp;stripped_title=team-work-with-models-web"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=teamworkwithmodelsweb-090325124454-phpapp02&amp;amp;stripped_title=team-work-with-models-web" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="font-size: 11px; font-family: tahoma,arial; height: 26px; padding-top: 2px;"&gt;View more &lt;a style="text-decoration: underline;" href="http://www.slideshare.net/"&gt;presentations&lt;/a&gt; from &lt;a style="text-decoration: underline;" href="http://www.slideshare.net/cbrun"&gt;cbrun&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;unfortunately the demo links have been lost during the slides upload, you can watch the talk demos  :&lt;br /&gt;&lt;a href="http://literate.modeling.free.fr/modeling/compare/CompareUMLLibrary.htm"&gt;Metamodel agnostic diff/merge supporting multiple ressources&lt;/a&gt;&lt;br /&gt;&lt;a href="http://literate.modeling.free.fr/modeling/compare/CompareEcoreCVS.htm"&gt;Platform Team API integration (CVS, SVN and GIT) &lt;/a&gt;&lt;br /&gt;&lt;a href="http://literate.modeling.free.fr/modeling/compare/GMFCompareEcoredi.htm"&gt;Graphical modelers integration (draft) &lt;/a&gt;&lt;br /&gt;&lt;a href="http://literate.modeling.free.fr/modeling/compare/EPatch.htm"&gt;EPatch feature&lt;/a&gt;&lt;br /&gt;&lt;a href="http://literate.modeling.free.fr/modeling/compare/ExportEmfDiffAndMTLLibrary.htm"&gt;&lt;br /&gt;Extensible diff model export  &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Among the interesting questions I had at the end one was : &lt;span style="font-style: italic;"&gt;"Can EMF Compare is not able to compare a 50Mb model ? I tried and it crashed" &lt;/span&gt;- well, that's right, no doubt there is room for optimisation in the generic match engine used by EMF Compare, but  comparing two versions of a whole huge model seems quite inappropriate most of the time, that's basically the same thing as if you would like to compare your C: drive with your D: drive, what's the point ?&lt;br /&gt; EMF Compare 0.9 (soon to be 1.0) now supports model fragments, just split your models !&lt;br /&gt;  hat said, some of the use case for such a model (and even way bigger) stays valid and that's why I launched the &lt;a href="http://wiki.eclipse.org/Google_Summer_of_Code_2009_Ideas"&gt;GSOC idea &lt;/a&gt;about "comparing huge models" - by huge I mean millions of elements or more.  That requires a very different algorithm, and specific handling of the "runtime data" needed to compare the models. &lt;span style="font-weight: bold;"&gt;Interesting subject indeed !&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The good news is that seems like this subject is interesting students, great ! go ahead ! and provide a great application !&lt;br /&gt;&lt;br /&gt;Another proof that pragmatism with modeling helps , Acceleo won the "&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;Best Open Source Eclipse-Based Developer Tool&lt;/span&gt;" , I'm really sorry not being able to get my pictures from my camera right now because  it contains a proof that girls can't&lt;span&gt;&lt;br /&gt;resist on a kiss from a french guy, just imagine the picture with Jonathan and Lynn ;) . We've got an high standard to keep !&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Stay tuned as EclipseCon is not over, I'll come back with even more event reports and "imaginary pictures"&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5749374620125186414-3216829464798897423?l=model-driven-blogging.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://model-driven-blogging.blogspot.com/feeds/3216829464798897423/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5749374620125186414&amp;postID=3216829464798897423' title='1 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/3216829464798897423'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/3216829464798897423'/><link rel='alternate' type='text/html' href='http://model-driven-blogging.blogspot.com/2009/03/modeling-your-eclipsecon.html' title='Modeling your EclipseCon'/><author><name>Cédric Brun</name><uri>http://www.blogger.com/profile/17900773020510714946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_u5tMWln_Ie8/SRH3NgLBsHI/AAAAAAAAAAY/p_G-WB2DRaA/S220/author_photo.php.jpeg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5749374620125186414.post-7945694064996685286</id><published>2009-03-10T08:46:00.000-07:00</published><updated>2009-05-07T08:06:52.391-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='acceleo'/><title type='text'>Eclipse Modeling Summer of Code 2009</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.eclipse.org/soc/images/soc.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 318px; height: 197px;" src="http://www.eclipse.org/soc/images/soc.png" alt="" border="0" /&gt;&lt;/a&gt;Yes, summer is coming fast, and if you're a student interested in software development and engineering, Eclipse is a great place for a &lt;span style="font-weight: bold;"&gt;Summer of Code &lt;/span&gt;!&lt;br /&gt;&lt;br /&gt;New ideas are still appearing on the&lt;a href="http://wiki.eclipse.org/index.php?title=Google_Summer_of_Code_2009_Ideas"&gt; wiki page&lt;/a&gt; and no doubt you'll get many more in a few weeks. Let me highlight some of the cool subjects you might apply for if you're interested in modeling.&lt;br /&gt;&lt;br /&gt;Let's speak about &lt;a href="http://wiki.eclipse.org/EMF_Compare"&gt;EMF Compare&lt;/a&gt;, we tried to focus on &lt;span style="font-weight: bold;"&gt;cool stuffs&lt;/span&gt; as that's what open source is about.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_u5tMWln_Ie8/SbaR8r4bmoI/AAAAAAAAAHA/B4TbgXJshwU/s1600-h/Java3DFeedbackFigure.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px; height: 156px;" src="http://2.bp.blogspot.com/_u5tMWln_Ie8/SbaR8r4bmoI/AAAAAAAAAHA/B4TbgXJshwU/s200/Java3DFeedbackFigure.jpg" alt="" id="BLOGGER_PHOTO_ID_5311593282287671938" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;First, the &lt;span style="font-weight: bold;"&gt;3D visualization&lt;/span&gt; !  Using EMF Compare, the GMF Diagram support and &lt;a href="http://www.eclipse.org/proposals/gef3d/"&gt;GEF 3D&lt;/a&gt;, one can imagine to get a nice "time machine like" visualization of the model differences.  One can easily imagine really nice representation using that third dimension, we have to display two (or three) versions of a diagram annotating the diagram elements with graphical hints saying "that's a new element", or "this one has been changed", so 3D can make sense here.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_u5tMWln_Ie8/SbaUoRH0gMI/AAAAAAAAAHI/5KnBAUQTT_M/s1600-h/Stub1.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 200px; height: 169px;" src="http://2.bp.blogspot.com/_u5tMWln_Ie8/SbaUoRH0gMI/AAAAAAAAAHI/5KnBAUQTT_M/s200/Stub1.png" alt="" id="BLOGGER_PHOTO_ID_5311596230041960642" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Second :&lt;span style="font-weight: bold;"&gt; huge models comparison &lt;span style="font-weight: bold;"&gt;, &lt;/span&gt;&lt;/span&gt;by huge we mean &lt;span style="font-weight: bold;"&gt;really&lt;/span&gt; huge like millions of elements. EMF Compare uses an heuristic-based algorithm to compare two models, while doing so its keeping processing data in memory (more important the models are,  the more memory is used).  The subject is two folds : first design and implements a MatchEngine needing less stuffs in memory, then leverage Eclipse technologies like &lt;a href="http://www.eclipse.org/modeling/emf/?project=cdo#cdo"&gt;CDO&lt;/a&gt; or &lt;a href="http://www.eclipse.org/modeling/emft/?project=jcrm"&gt;JCRManagement&lt;/a&gt; in order to break the memory bound ! That may seems trivial, but when you need to process a lot of data, &lt;a href="http://scienceblogs.com/goodmath/2008/11/scale_how_large_quantities_of.php"&gt;many parameters are changing.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Third : improving the "&lt;span style="font-weight: bold;"&gt;Graphical Compare&lt;/span&gt;'" proof of concept initiated by Tobias (&lt;a href="http://literate.modeling.free.fr/modeling/compare/GMFCompareEcoredi.htm"&gt;flash demo here&lt;/a&gt;) .&lt;br /&gt;&lt;br /&gt;Many more ideas are available and looks really cool especially in the modeling area, so If you're a student, jump and meet the &lt;span style="font-weight: bold;"&gt;Eclipse Community&lt;/span&gt; !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5749374620125186414-7945694064996685286?l=model-driven-blogging.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://model-driven-blogging.blogspot.com/feeds/7945694064996685286/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5749374620125186414&amp;postID=7945694064996685286' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/7945694064996685286'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/7945694064996685286'/><link rel='alternate' type='text/html' href='http://model-driven-blogging.blogspot.com/2009/03/eclipse-modeling-summer-of-code-2009.html' title='Eclipse Modeling Summer of Code 2009'/><author><name>Cédric Brun</name><uri>http://www.blogger.com/profile/17900773020510714946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_u5tMWln_Ie8/SRH3NgLBsHI/AAAAAAAAAAY/p_G-WB2DRaA/S220/author_photo.php.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_u5tMWln_Ie8/SbaR8r4bmoI/AAAAAAAAAHA/B4TbgXJshwU/s72-c/Java3DFeedbackFigure.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5749374620125186414.post-8765541702991355228</id><published>2009-03-04T05:23:00.000-08:00</published><updated>2009-05-07T08:07:13.135-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ui testing'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='acceleo'/><category scheme='http://www.blogger.com/atom/ns#' term='software engineering'/><title type='text'>ShuangXi effect : UI testing and documentation</title><content type='html'>In my never-ending quest of ideas or tools to &lt;span style="font-weight: bold;"&gt;avoid doing boring stuff&lt;/span&gt; (that sacred goal explains my interest in pragmatic modeling), I made quite a victory today thanks to one of those gems you find in Eclipse.&lt;br /&gt;&lt;br /&gt;Here I'm speaking about the&lt;span style="font-weight: bold;"&gt; help/tutorials&lt;/span&gt; you get in the Eclipse help menu.&lt;br /&gt;We often add many many screenshots in the tutorial but this tiny litle idea of "showing stuff to the user" may have a  huge cost ! The drawback of using such images in the help is that as the tool evolve the ui do so,  and the tutorial screenshots are quickly really different from the real tool user interface.&lt;br /&gt;Then you even have to recapture screenshots for at every release, or just decide that "&lt;span style="font-weight: bold;"&gt;a real doc has no screenshots&lt;/span&gt;"&lt;br /&gt;&lt;br /&gt;Both are &lt;span style="font-weight: bold;"&gt;inadmissible, &lt;/span&gt;one idea would be to integrate this "screen capture" step in the build process and automatically capture the wizards, views or properties.  Then, you would even be able to &lt;span style="font-weight: bold;"&gt;localize your documentation screenshots &lt;/span&gt;starting this process for every localization you have. You've got pretty much any thing you need, right now thanks to Eclipse, to do that.&lt;br /&gt;&lt;br /&gt;The gem I mentioned is &lt;a href="http://www.eclipse.org/swtbot/"&gt;SWTBot &lt;/a&gt;, thanks to this litle tool I quickly managed to get a basic test scenario working to test UI. Even if testing is important, and testing UI is tricky, here my goal was to produce the screenshots from the tests, here is the code (it anybody knows how to highlight code with blogger...):&lt;br /&gt;&lt;tt&gt;&lt;br /&gt;bot.view("Welcome").close();&lt;br /&gt;&lt;br /&gt;bot.menu("Window").menu("Open Perspective").menu("Other...").click();&lt;br /&gt;SWTBotShell openPerspectiveShell = bot.shell("Open Perspective");&lt;br /&gt;openPerspectiveShell.activate();&lt;br /&gt;&lt;br /&gt;bot.table().select("Acceleo");&lt;br /&gt;captureScreenshot("1-switch-perspective.png");&lt;br /&gt;bot.button("OK").click();&lt;br /&gt;&lt;/tt&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_u5tMWln_Ie8/Sa6GLMuNNLI/AAAAAAAAAG4/AbnjaM7dp7U/s1600-h/1-switch-perspective.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 266px; height: 320px;" src="http://2.bp.blogspot.com/_u5tMWln_Ie8/Sa6GLMuNNLI/AAAAAAAAAG4/AbnjaM7dp7U/s320/1-switch-perspective.png" alt="" id="BLOGGER_PHOTO_ID_5309328537668105394" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;tt&gt;&lt;br /&gt;bot.menu("File").menu("New").menu("Project...").click();&lt;br /&gt;SWTBotShell newProjectShell = bot.shell("New Project");&lt;br /&gt;newProjectShell.activate();&lt;br /&gt;bot.tree().expandNode("Acceleo").getNode("Generator Project").select();&lt;br /&gt;captureScreenshot("2-new-generator-project.png");&lt;br /&gt;&lt;/tt&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_u5tMWln_Ie8/Sa6FQFBJiZI/AAAAAAAAAGQ/fHBLvH_QWlY/s1600-h/2-new-generator-project.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 320px;" src="http://2.bp.blogspot.com/_u5tMWln_Ie8/Sa6FQFBJiZI/AAAAAAAAAGQ/fHBLvH_QWlY/s320/2-new-generator-project.png" alt="" id="BLOGGER_PHOTO_ID_5309327521987791250" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;tt&gt;     bot.button("Next &gt;").click();&lt;br /&gt;bot.text().setText("org.acceleo.uml2.gen.java");&lt;br /&gt;captureScreenshot("3-new-generator-step1.png");&lt;br /&gt;&lt;/tt&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_u5tMWln_Ie8/Sa6FYO_U8vI/AAAAAAAAAGY/TwG42ilJ8Ao/s1600-h/3-new-generator-step1.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 320px;" src="http://1.bp.blogspot.com/_u5tMWln_Ie8/Sa6FYO_U8vI/AAAAAAAAAGY/TwG42ilJ8Ao/s320/3-new-generator-step1.png" alt="" id="BLOGGER_PHOTO_ID_5309327662103458546" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;tt&gt;&lt;br /&gt;bot.button("Finish").click();&lt;br /&gt;&lt;br /&gt;bot.waitUntil(Conditions.shellCloses(newProjectShell));&lt;br /&gt;captureScreenshot("4-generator-project-done.png");&lt;br /&gt;&lt;/tt&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_u5tMWln_Ie8/Sa6FeHfSSbI/AAAAAAAAAGg/ZMsLD3z8wnQ/s1600-h/4-generator-project-done.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 239px;" src="http://3.bp.blogspot.com/_u5tMWln_Ie8/Sa6FeHfSSbI/AAAAAAAAAGg/ZMsLD3z8wnQ/s320/4-generator-project-done.png" alt="" id="BLOGGER_PHOTO_ID_5309327763169233330" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;tt&gt;&lt;br /&gt;bot.menu("File").menu("New").menu("Empty Generator").click();&lt;br /&gt;SWTBotShell newTemplateShell = bot.shell("New");&lt;br /&gt;newTemplateShell.activate();&lt;br /&gt;captureScreenshot("5-new-template-wizard.png");&lt;br /&gt;&lt;/tt&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_u5tMWln_Ie8/Sa6Fj_1ZtVI/AAAAAAAAAGo/7LMoutCcWkE/s1600-h/5-new-template-wizard.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 320px;" src="http://1.bp.blogspot.com/_u5tMWln_Ie8/Sa6Fj_1ZtVI/AAAAAAAAAGo/7LMoutCcWkE/s320/5-new-template-wizard.png" alt="" id="BLOGGER_PHOTO_ID_5309327864193725778" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;tt&gt;&lt;br /&gt;bot.comboBox().setSelection("http://www.eclipse.org/uml2/2.1.0/UML");&lt;br /&gt;bot.comboBox(1).setSelection("uml.Class");&lt;br /&gt;captureScreenshot("6-new-template-wizard-full.png");&lt;br /&gt;&lt;/tt&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_u5tMWln_Ie8/Sa6Ftf1UNUI/AAAAAAAAAGw/Qs2yzyzlGB0/s1600-h/6-new-template-wizard-full.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 320px;" src="http://2.bp.blogspot.com/_u5tMWln_Ie8/Sa6Ftf1UNUI/AAAAAAAAAGw/Qs2yzyzlGB0/s320/6-new-template-wizard-full.png" alt="" id="BLOGGER_PHOTO_ID_5309328027402122562" border="0" /&gt;&lt;/a&gt;That's the&lt;a href="http://en.wikipedia.org/wiki/Double_Happiness_%28calligraphy%29"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;喜喜&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; &lt;/span&gt; (ShuangXi)&lt;/a&gt; effect, you roughly test your UI &lt;span style="font-weight: bold;"&gt;and&lt;/span&gt; you get your screenshots !&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;ps : special "Hi" to the unique Guangzhou visitor I had on this blog so far :)&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5749374620125186414-8765541702991355228?l=model-driven-blogging.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://model-driven-blogging.blogspot.com/feeds/8765541702991355228/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5749374620125186414&amp;postID=8765541702991355228' title='4 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/8765541702991355228'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/8765541702991355228'/><link rel='alternate' type='text/html' href='http://model-driven-blogging.blogspot.com/2009/03/shuangxi-effect-ui-testing-and.html' title='ShuangXi effect : UI testing and documentation'/><author><name>Cédric Brun</name><uri>http://www.blogger.com/profile/17900773020510714946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_u5tMWln_Ie8/SRH3NgLBsHI/AAAAAAAAAAY/p_G-WB2DRaA/S220/author_photo.php.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_u5tMWln_Ie8/Sa6GLMuNNLI/AAAAAAAAAG4/AbnjaM7dp7U/s72-c/1-switch-perspective.png' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5749374620125186414.post-8666280745850019187</id><published>2009-02-17T08:44:00.000-08:00</published><updated>2009-05-07T08:07:35.197-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='modeling kata'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='acceleo'/><category scheme='http://www.blogger.com/atom/ns#' term='software engineering'/><title type='text'>Engineering dictator strikes back : querying your team repository</title><content type='html'>That post inaugurate a series of &lt;span style="font-weight: bold;"&gt;"modeling kata"'s&lt;/span&gt;. Modeling kata's are about basic usage of Eclipse modeling and related technologies to create fun stuffs, and more importantly doing it again and again using different ways and analysing the pros and cons of each solution.  Of course the "kata" terminology &lt;a href="http://pragdave.pragprog.com/"&gt;is not from me.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Let's introduce the problem :&lt;br /&gt;&lt;br /&gt;Taking my role of&lt;span style="font-weight: bold;"&gt; " &lt;strike&gt;Non&lt;/strike&gt; Benevolent Dictator for Life&lt;/span&gt; " &lt;a href="http://www.obeo.fr/"&gt;at work &lt;/a&gt;seriously, I like to keep an eye on the source code history of our products; on the mass of changes and on the places where the changes are made.&lt;br /&gt;&lt;br /&gt;That was the idea behind the teamlog2rss.py script I wrote last year.  But now, going a bit further in the "big brother" concepts, I hacked a small EMF model to retrieve the logs from the team repository and to generate reports, I'm then able to analyze the log messages and file uri's :)&lt;br /&gt;&lt;br /&gt;The model is straightforward, here is a quick extract of the result :&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_u5tMWln_Ie8/SZr29ji1-FI/AAAAAAAAAF4/qzOj-W9IvE8/s1600-h/teammodel..png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 223px;" src="http://4.bp.blogspot.com/_u5tMWln_Ie8/SZr29ji1-FI/AAAAAAAAAF4/qzOj-W9IvE8/s400/teammodel..png" alt="" id="BLOGGER_PHOTO_ID_5303823048556017746" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The model implementation is querying &lt;a href="http://www.eclipse.org/subversive/"&gt;Subversive &lt;/a&gt;to retrieve the logs through a "derived reference". That solution is quite crappy as accessing the model means going through the network (meaning - that's slow), but the advantage is  : my EMF model is a plain old EMF model, and as such any tool will work with it.&lt;br /&gt;&lt;br /&gt;Then I'm producing reports using &lt;a href="http://www.acceleo.org/pages/accueil/"&gt;Acceleo&lt;/a&gt;, for each week and commiter, I'm checking:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;how many changes have been made&lt;br /&gt;&lt;/li&gt;&lt;li&gt;how many unique files have been changed&lt;br /&gt;&lt;/li&gt;&lt;li&gt;how many tests have been changed&lt;/li&gt;&lt;li&gt;how many "happy checkstyle" commits were done&lt;/li&gt;&lt;li&gt;commit activity concerning "bugfixing"&lt;br /&gt;&lt;/li&gt;&lt;li&gt;how many "happy boyscout" commits were done&lt;/li&gt;&lt;/ul&gt;here is an extract of the M2T template:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_u5tMWln_Ie8/SZr24t1WZfI/AAAAAAAAAFw/VXXtkzusc8U/s1600-h/teamtemplate.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 255px;" src="http://1.bp.blogspot.com/_u5tMWln_Ie8/SZr24t1WZfI/AAAAAAAAAFw/VXXtkzusc8U/s400/teamtemplate.png" alt="" id="BLOGGER_PHOTO_ID_5303822965418649074" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I'm then able to generate HTML, and even generate a small uri for Google charts to get nice pictures:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://chart.apis.google.com/chart?chs=400x120&amp;amp;cht=lc&amp;amp;chd=t:118,171,131,79,170,52,144,252,155,275,190,108,56,76,145,97,110,165,154,82,107,141,101,67,76,76,325,94,225,79,76,58,225,70,133,249,160,196,70,82%7C223,781,734,1251,740,454,509,1539,1058,1670,3135,1040,1969,524,1529,504,1887,1772,1488,3002,914,1570,649,153,237,372,375,127,341,439,398,599,1699,648,1253,1352,1451,2524,324,752%7C223,781,734,1251,740,454,509,1539,1058,1670,3135,1040,1969,524,1529,504,1887,1772,1488,3002,914,1570,649,153,237,372,375,127,341,439,398,599,1699,648,1253,1352,1451,2524,324,752%7C18,29,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0%7C0,0,0,0,2,0,0,0,1,4,1,0,0,0,6,0,15,2,15,4,2,12,11,2,4,1,356,85,221,13,22,1,2,2,41,99,74,21,28,31%7C114,537,322,483,340,3,288,619,659,923,1247,567,266,278,1232,94,50,97,19,0,78,700,2,0,1,0,0,6,14,0,6,13,2,6,0,0,13,14,32,20%7C10,80,34,62,139,4,56,24,6,21,61,11,5,6,7,37,62,8,22,130,33,23,44,18,15,46,10,12,35,23,24,27,7,34,5,6,3,52,6,1&amp;amp;chco=fcaf3e,8ae234,729fcf,ad7fa8,fce94f,e9b96e,888a85&amp;amp;chdl=commits%7C%20changed%20files%7C%20boyscout%7Ccheckstyle%7Cbugfixing%7Ctesting"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 120px;" src="http://chart.apis.google.com/chart?chs=400x120&amp;amp;cht=lc&amp;amp;chd=t:118,171,131,79,170,52,144,252,155,275,190,108,56,76,145,97,110,165,154,82,107,141,101,67,76,76,325,94,225,79,76,58,225,70,133,249,160,196,70,82%7C223,781,734,1251,740,454,509,1539,1058,1670,3135,1040,1969,524,1529,504,1887,1772,1488,3002,914,1570,649,153,237,372,375,127,341,439,398,599,1699,648,1253,1352,1451,2524,324,752%7C223,781,734,1251,740,454,509,1539,1058,1670,3135,1040,1969,524,1529,504,1887,1772,1488,3002,914,1570,649,153,237,372,375,127,341,439,398,599,1699,648,1253,1352,1451,2524,324,752%7C18,29,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0%7C0,0,0,0,2,0,0,0,1,4,1,0,0,0,6,0,15,2,15,4,2,12,11,2,4,1,356,85,221,13,22,1,2,2,41,99,74,21,28,31%7C114,537,322,483,340,3,288,619,659,923,1247,567,266,278,1232,94,50,97,19,0,78,700,2,0,1,0,0,6,14,0,6,13,2,6,0,0,13,14,32,20%7C10,80,34,62,139,4,56,24,6,21,61,11,5,6,7,37,62,8,22,130,33,23,44,18,15,46,10,12,35,23,24,27,7,34,5,6,3,52,6,1&amp;amp;chco=fcaf3e,8ae234,729fcf,ad7fa8,fce94f,e9b96e,888a85&amp;amp;chdl=commits%7C%20changed%20files%7C%20boyscout%7Ccheckstyle%7Cbugfixing%7Ctesting" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I'm even able to add the commiters picture in the "weekly hall of fame" through user code tags in the HTML :)&lt;br /&gt;&lt;br /&gt;That said, M2T transformation is not the best pick for such a need, I really need to deduce new information from the original teamlog data to produce, afterwards, a nice report. Next try on this kata will probably involve M2M transformation to deduce the information, or Birt reporting... But, I don't want to spoil you, &lt;span style="font-style: italic;"&gt;stay tuned ;)&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5749374620125186414-8666280745850019187?l=model-driven-blogging.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://model-driven-blogging.blogspot.com/feeds/8666280745850019187/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5749374620125186414&amp;postID=8666280745850019187' title='3 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/8666280745850019187'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/8666280745850019187'/><link rel='alternate' type='text/html' href='http://model-driven-blogging.blogspot.com/2009/02/engineering-dictator-strikes-back.html' title='Engineering dictator strikes back : querying your team repository'/><author><name>Cédric Brun</name><uri>http://www.blogger.com/profile/17900773020510714946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_u5tMWln_Ie8/SRH3NgLBsHI/AAAAAAAAAAY/p_G-WB2DRaA/S220/author_photo.php.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_u5tMWln_Ie8/SZr29ji1-FI/AAAAAAAAAF4/qzOj-W9IvE8/s72-c/teammodel..png' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5749374620125186414.post-8563494176849868759</id><published>2009-01-21T01:31:00.000-08:00</published><updated>2009-05-07T08:22:40.510-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='community'/><category scheme='http://www.blogger.com/atom/ns#' term='acceleo'/><category scheme='http://www.blogger.com/atom/ns#' term='modeling'/><category scheme='http://www.blogger.com/atom/ns#' term='chocolate'/><title type='text'>2008 was full of excitement,let's make an even better 2009 !</title><content type='html'>Times have been busy&lt;a href="http://model-driven-blogging.blogspot.com/2008/11/back-from-ese-2008-wow.html"&gt; since Eclipse Summit&lt;/a&gt;, mixing the great stuffs I'm doing at work, Gaspard (Casper) incredibly fast growing, the Eclipse and Open Source activities and the whole Christmas and New Year's Eve stuffs, each day was full of excitement.&lt;br /&gt;&lt;br /&gt;First, Ed came at Obeo/Nantes for a full day of cool technical stuffs, demos, and of course, pastry ! If you didn't met Ed you can't even imagine how friendly he is, that was a great time and I've been able to give him back the chocolates I was owing him. Feel free to come back any time Ed !&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_u5tMWln_Ie8/SXZJcbyhJaI/AAAAAAAAADw/DDkNiFPQP5Q/s1600-h/ED-chocolate.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 214px; height: 320px;" src="http://3.bp.blogspot.com/_u5tMWln_Ie8/SXZJcbyhJaI/AAAAAAAAADw/DDkNiFPQP5Q/s320/ED-chocolate.jpg" alt="" id="BLOGGER_PHOTO_ID_5293499164865406370" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Speaking about chocolates, the end of the year was full of those at Obeo. As more and more internal projects uses continuous builds with &lt;a href="https://hudson.dev.java.net/"&gt;hudson&lt;/a&gt;, more and more chocolate commits gets detected ! A day without a new chocolate box has been a rare thing lately.&lt;br /&gt;&lt;br /&gt;About code, projects and products, If you're a model user,  you'll probably be happy to learn that EMF compare 0.9 features are being done in the repository, here is a quick glimpse of the "&lt;span style="font-weight: bold;"&gt;ResourceSet Match&lt;/span&gt;" also known as the "&lt;span style="font-weight: bold;"&gt;EMF Compare can't handle my models having external references bug"&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_u5tMWln_Ie8/SXXxEu4IkvI/AAAAAAAAADY/LWqBAooagI0/s1600-h/Capture-Java+-+Comparaison+r%C3%A9ciproque+de+attributeChange-v1.genmodel+avec+attributeChange-v2.genmodel+-+SDK+Eclipse+.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 250px;" src="http://2.bp.blogspot.com/_u5tMWln_Ie8/SXXxEu4IkvI/AAAAAAAAADY/LWqBAooagI0/s400/Capture-Java+-+Comparaison+r%C3%A9ciproque+de+attributeChange-v1.genmodel+avec+attributeChange-v2.genmodel+-+SDK+Eclipse+.png" alt="" id="BLOGGER_PHOTO_ID_5293402000649130738" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Here we're comparing a genmodel, and you probably already knows that &lt;span style="font-weight: bold;"&gt;genmodels are decorating ecore models&lt;/span&gt;,  and as such have references on the ecore model.&lt;br /&gt;&lt;br /&gt;If you're interested in EMF Compare, do not hesitate to have a look on the&lt;a href="http://live.eclipse.org/node/616"&gt; webinar Laurent and I did in December !&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_u5tMWln_Ie8/SXXzPpn6B5I/AAAAAAAAADg/Lfr3DLJXass/s1600-h/comparewebinar"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 165px;" src="http://4.bp.blogspot.com/_u5tMWln_Ie8/SXXzPpn6B5I/AAAAAAAAADg/Lfr3DLJXass/s400/comparewebinar" alt="" id="BLOGGER_PHOTO_ID_5293404387240707986" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It's demonstrating EMF Compare both from a user point of view and from a developper, tool vendor or "extender" one :)&lt;br /&gt;&lt;br /&gt;As a side note, do not hesitate to ask the foundation to organize a webinar for your project, you'll get those Eclipse Shirts which are quite &lt;span style="font-weight: bold;"&gt;collector&lt;/span&gt; ones then ;) Thanks again for your help Lynn !&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_u5tMWln_Ie8/SXXzoxHj-oI/AAAAAAAAADo/SuYxX4E2EMc/s1600-h/DSC00260.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 150px; height: 200px;" src="http://2.bp.blogspot.com/_u5tMWln_Ie8/SXXzoxHj-oI/AAAAAAAAADo/SuYxX4E2EMc/s200/DSC00260.JPG" alt="" id="BLOGGER_PHOTO_ID_5293404818749258370" border="0" /&gt;&lt;/a&gt;These are just a few things who made the end of 2008 an exciting time and no doubt 2009 we'll be even more exciting !&lt;br /&gt;&lt;br /&gt;First I'm now a member of both &lt;a href="http://www.eclipse.org/org/foundation/council.php"&gt;Architecture and Planning Councils&lt;/a&gt;, I'm confident I'll enjoy theses and I'll do my best to fulfill the expectations there.&lt;br /&gt;&lt;br /&gt;Second :&lt;br /&gt;&lt;a href="http://www.eclipsecon.org/2009/"&gt;&lt;img src="http://www.eclipsecon.org/2009/static/image/100x100_speaking.gif" alt="I'm speaking at EclipseCon 2009" width="100" border="0" height="100" /&gt;&lt;/a&gt;&lt;br /&gt;Yes, I'm speaking to EclipseCon thanks to Obeo and the program commitee (nah nah, nothing to do with the chocolate box ! ) and I'll present a talk there about &lt;span style="font-weight: bold;"&gt;Team Work with models &lt;/span&gt;so that I can show EMF Compare in action, its integration in GMF modelers and even a bit of 3D if I'm able to code a prototype with GEF 3D since then.&lt;br /&gt;&lt;br /&gt;Stay tuned for more exciting stuffs from the modeling space ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5749374620125186414-8563494176849868759?l=model-driven-blogging.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://model-driven-blogging.blogspot.com/feeds/8563494176849868759/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5749374620125186414&amp;postID=8563494176849868759' title='1 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/8563494176849868759'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/8563494176849868759'/><link rel='alternate' type='text/html' href='http://model-driven-blogging.blogspot.com/2009/01/2008-was-full-of-excitement-2009-can.html' title='2008 was full of excitement,let&apos;s make an even better 2009 !'/><author><name>Cédric Brun</name><uri>http://www.blogger.com/profile/17900773020510714946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_u5tMWln_Ie8/SRH3NgLBsHI/AAAAAAAAAAY/p_G-WB2DRaA/S220/author_photo.php.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_u5tMWln_Ie8/SXZJcbyhJaI/AAAAAAAAADw/DDkNiFPQP5Q/s72-c/ED-chocolate.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5749374620125186414.post-4464001746837740654</id><published>2008-11-25T22:05:00.000-08:00</published><updated>2009-05-07T08:22:01.340-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='community'/><category scheme='http://www.blogger.com/atom/ns#' term='acceleo'/><category scheme='http://www.blogger.com/atom/ns#' term='modeling'/><title type='text'>Back from ESE 2008 : WOW !</title><content type='html'>I'm now back to France after this great conference.  Ed covered the "modeling events" quite well already but I can't prevent myself from sharing my pleasure as I'm still filled with excitement !&lt;br /&gt;&lt;br /&gt;My overall impression on  the conference is that it had many clear signs of an active, &lt;span style="font-weight: bold;"&gt;innovative&lt;/span&gt; and &lt;span style="font-weight: bold;"&gt;enjoying&lt;/span&gt; community. No doubt E4 has its role in this whole "refreshment" thing, the debates in the symposium were  more than interesting and I've no doubt such good and skilled people as those involved in E4 right now will come up with a great platform. In this regard, Tom's talks were more than interesting, keeps doing the fun stuffs !&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_u5tMWln_Ie8/SSw6WEWQHwI/AAAAAAAAACw/j66TGszx0ZE/s1600-h/Tomstalk.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 213px;" src="http://3.bp.blogspot.com/_u5tMWln_Ie8/SSw6WEWQHwI/AAAAAAAAACw/j66TGszx0ZE/s320/Tomstalk.jpg" alt="" id="BLOGGER_PHOTO_ID_5272653414542614274" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;The  "&lt;span style="font-weight: bold;"&gt;modeling is crap"&lt;/span&gt;  statement has been repeated  quite a few times during the various talks,  Ed described and analysed such misconceptions, models will rules the world ! Resistance is futile !&lt;br /&gt;More seriously, I have the feeling the message "modeling is not UML" was really getting in, thanks to Ecore and all the amazing projects under the Eclipse umbrella, you can define your own DSL and quickly develop your tooling or adapt existing tooling around that. That's being &lt;span style="font-weight: bold;"&gt;agile &lt;/span&gt;!&lt;br /&gt;&lt;br /&gt;On the other side of the barrier, Eclipse is now able to compete with profesionnal UML tools thanks to Papyrus (and one a sidenote EMF Compare ;) ) This quality of tooling was only available in commercial tools before, &lt;span style="font-weight: bold;"&gt;things are changing&lt;/span&gt; !&lt;br /&gt;&lt;br /&gt;Speaking about EMF Compare, I was amazed to see how many people reused this project or integrated it in their own tooling. Getting this kind of feedback is not easy, especially with the newsgroup as you mostly only get the &lt;span style="font-style: italic;"&gt;"This stuff seems not to work"  &lt;/span&gt;messages, ESE is a great place to meet your user base :)&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_u5tMWln_Ie8/SSwy-10O2-I/AAAAAAAAABQ/jpE8HtATnew/s1600-h/Josleeping_1.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 240px;" src="http://4.bp.blogspot.com/_u5tMWln_Ie8/SSwy-10O2-I/AAAAAAAAABQ/jpE8HtATnew/s320/Josleeping_1.jpg" alt="" id="BLOGGER_PHOTO_ID_5272645318923443170" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Getting to ESE using the &lt;span style="font-style: italic;"&gt;"night train" &lt;/span&gt;was not the best way to rest, but the modeling symposium was perfectly handed by Markus and the tiredness quickly disappeared.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_u5tMWln_Ie8/SSw0wGO8q8I/AAAAAAAAACA/Ie3LLAang6E/s1600-h/symposium_1.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 214px;" src="http://3.bp.blogspot.com/_u5tMWln_Ie8/SSw0wGO8q8I/AAAAAAAAACA/Ie3LLAang6E/s320/symposium_1.jpg" alt="" id="BLOGGER_PHOTO_ID_5272647264655682498" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Then the talks took place. High quality ones for sure ! That's a shame we have not been able to provide slots for the many good other talk submitted, let's hope we'll have more slots next year !&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_u5tMWln_Ie8/SSwzWfQ8-FI/AAAAAAAAABg/2_qD0BqBiaY/s1600-h/img_4004_1.jpg"&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_u5tMWln_Ie8/SSwzePyctrI/AAAAAAAAABo/vLS7tDuWNxU/s1600-h/img_4017_1.jpg"&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_u5tMWln_Ie8/SSw1zTptyHI/AAAAAAAAACI/HyIsHXEennU/s1600-h/talksban.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 146px;" src="http://1.bp.blogspot.com/_u5tMWln_Ie8/SSw1zTptyHI/AAAAAAAAACI/HyIsHXEennU/s400/talksban.jpg" alt="" id="BLOGGER_PHOTO_ID_5272648419308849266" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Summit also mean socializing !  Many &lt;span style="font-style: italic;"&gt;people, &lt;/span&gt;many &lt;span style="font-style: italic;"&gt;beer, &lt;/span&gt;good &lt;span style="font-style: italic;"&gt;food, &lt;/span&gt;it can only lead to a nice reception :) I even hacked a bit with Sandro from the JCR management project which is really cool. How is that possible that all the guys working on models repositories are so friendly ?&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_u5tMWln_Ie8/SSw2PTXwjmI/AAAAAAAAACQ/DYk8XxTYJ5A/s1600-h/hackingwithsandro_1.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 214px;" src="http://4.bp.blogspot.com/_u5tMWln_Ie8/SSw2PTXwjmI/AAAAAAAAACQ/DYk8XxTYJ5A/s320/hackingwithsandro_1.jpg" alt="" id="BLOGGER_PHOTO_ID_5272648900269870690" border="0" /&gt;&lt;/a&gt;I also chatted a bit with the whole Eclipse marketing effort !&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_u5tMWln_Ie8/SSw2yrwAD-I/AAAAAAAAACY/Dd67YTO-kxc/s1600-h/eclipsemarketing_1.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 214px; height: 320px;" src="http://1.bp.blogspot.com/_u5tMWln_Ie8/SSw2yrwAD-I/AAAAAAAAACY/Dd67YTO-kxc/s320/eclipsemarketing_1.jpg" alt="" id="BLOGGER_PHOTO_ID_5272649508109422562" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Then many more talks, chats, with many other Eclipse project :) Time gets away too fast, and we were already having a last &lt;span style="font-weight: bold;"&gt;modeling beer&lt;/span&gt; at the Nestor hotel !&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_u5tMWln_Ie8/SSw38TyMD3I/AAAAAAAAACg/lb5W3OpYo5U/s1600-h/lastmodelingbeer.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 152px;" src="http://4.bp.blogspot.com/_u5tMWln_Ie8/SSw38TyMD3I/AAAAAAAAACg/lb5W3OpYo5U/s400/lastmodelingbeer.jpg" alt="" id="BLOGGER_PHOTO_ID_5272650772986466162" border="0" /&gt;&lt;/a&gt;See you at EclipseCon !&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_u5tMWln_Ie8/SSw4UXRKL4I/AAAAAAAAACo/fotIk7FwEOA/s1600-h/lastbeer_1.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 267px;" src="http://2.bp.blogspot.com/_u5tMWln_Ie8/SSw4UXRKL4I/AAAAAAAAACo/fotIk7FwEOA/s400/lastbeer_1.jpg" alt="" id="BLOGGER_PHOTO_ID_5272651186238533506" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5749374620125186414-4464001746837740654?l=model-driven-blogging.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://model-driven-blogging.blogspot.com/feeds/4464001746837740654/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5749374620125186414&amp;postID=4464001746837740654' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/4464001746837740654'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/4464001746837740654'/><link rel='alternate' type='text/html' href='http://model-driven-blogging.blogspot.com/2008/11/back-from-ese-2008-wow.html' title='Back from ESE 2008 : WOW !'/><author><name>Cédric Brun</name><uri>http://www.blogger.com/profile/17900773020510714946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_u5tMWln_Ie8/SRH3NgLBsHI/AAAAAAAAAAY/p_G-WB2DRaA/S220/author_photo.php.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_u5tMWln_Ie8/SSw6WEWQHwI/AAAAAAAAACw/j66TGszx0ZE/s72-c/Tomstalk.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5749374620125186414.post-1099675665789785002</id><published>2008-11-06T10:17:00.000-08:00</published><updated>2008-11-07T01:37:58.184-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='acceleo'/><title type='text'>How much computer scientists do you need...</title><content type='html'>To setup doors  for a bathroom ?&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_u5tMWln_Ie8/SRM1J-f79aI/AAAAAAAAAAw/db60IMsgNYI/s1600-h/img_3891.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 266px;" src="http://4.bp.blogspot.com/_u5tMWln_Ie8/SRM1J-f79aI/AAAAAAAAAAw/db60IMsgNYI/s400/img_3891.jpg" alt="" id="BLOGGER_PHOTO_ID_5265610834838287778" border="0" /&gt;&lt;/a&gt;At least 2 model driven enthousiasts + me !&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_u5tMWln_Ie8/SRM1VZJWwGI/AAAAAAAAAA4/yFJQlbVQN2Y/s1600-h/img_3887.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; float: left; cursor: pointer; width: 214px; height: 320px;" src="http://1.bp.blogspot.com/_u5tMWln_Ie8/SRM1VZJWwGI/AAAAAAAAAA4/yFJQlbVQN2Y/s320/img_3887.jpg" alt="" id="BLOGGER_PHOTO_ID_5265611030969892962" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_u5tMWln_Ie8/SRP34UqtwFI/AAAAAAAAABI/wvBdY0oxo3s/s1600-h/mikasdblight.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 234px; height: 320px;" src="http://4.bp.blogspot.com/_u5tMWln_Ie8/SRP34UqtwFI/AAAAAAAAABI/wvBdY0oxo3s/s320/mikasdblight.jpg" alt="" id="BLOGGER_PHOTO_ID_5265824936318845010" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;And tadaa !&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_u5tMWln_Ie8/SRM1cTlZ5gI/AAAAAAAAABA/my2XA9eBXAY/s1600-h/portes.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 266px;" src="http://4.bp.blogspot.com/_u5tMWln_Ie8/SRM1cTlZ5gI/AAAAAAAAABA/my2XA9eBXAY/s400/portes.jpg" alt="" id="BLOGGER_PHOTO_ID_5265611149736011266" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-weight: bold;"&gt;Thanks again&lt;/span&gt; for your help guys :)&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5749374620125186414-1099675665789785002?l=model-driven-blogging.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://model-driven-blogging.blogspot.com/feeds/1099675665789785002/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5749374620125186414&amp;postID=1099675665789785002' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/1099675665789785002'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/1099675665789785002'/><link rel='alternate' type='text/html' href='http://model-driven-blogging.blogspot.com/2008/11/how-much-computer-scientists-do-you.html' title='How much computer scientists do you need...'/><author><name>Cédric Brun</name><uri>http://www.blogger.com/profile/17900773020510714946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_u5tMWln_Ie8/SRH3NgLBsHI/AAAAAAAAAAY/p_G-WB2DRaA/S220/author_photo.php.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_u5tMWln_Ie8/SRM1J-f79aI/AAAAAAAAAAw/db60IMsgNYI/s72-c/img_3891.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5749374620125186414.post-9032892606062005784</id><published>2008-11-03T09:11:00.000-08:00</published><updated>2008-11-03T11:58:33.535-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='acceleo'/><title type='text'>"Babies are such a nice way to start people"</title><content type='html'>I did not blogged a lot lately, several reasons for that:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;my web hoster decided that I had too much spam on my blog and &lt;span style="font-weight: bold;"&gt;destroyed &lt;/span&gt;the whole website with all its content :S&lt;/li&gt;&lt;li&gt;I had a few weeks of vacation, a good chance to rest you'll say ! Well.. not really as you'll see with point 3 and 4 ;)&lt;/li&gt;&lt;li&gt;in order to compete with Ed's incredible garden we decided to bought a house, so expect many more &lt;span style="font-weight: bold;"&gt;metaphoric blog posts &lt;/span&gt;with home made pictures!&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_u5tMWln_Ie8/SQ83MaH5wxI/AAAAAAAAAAM/7U5ADFXexlg/s1600-h/house_garden.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 214px;" src="http://4.bp.blogspot.com/_u5tMWln_Ie8/SQ83MaH5wxI/AAAAAAAAAAM/7U5ADFXexlg/s320/house_garden.jpg" alt="" id="BLOGGER_PHOTO_ID_5264487175729824530" border="0" /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;And at last but not least : &lt;span style="font-weight: bold;"&gt;Gaspard&lt;/span&gt; (Casper in English) joined us after 9 months of ecstatic waiting&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_OJuY9x1lbxI/SOMKDUu-g0I/AAAAAAAAAHg/WjR-KlM35oU/s1600-h/Gaspard2_30092008_light.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_OJuY9x1lbxI/SOMKDUu-g0I/AAAAAAAAAHg/WjR-KlM35oU/s400/Gaspard2_30092008_light.jpg" alt="" id="BLOGGER_PHOTO_ID_5252052642665759554" border="0" /&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;That makes many good reasons to justify my lack of &lt;span style="font-style: italic;"&gt;"mail answering"&lt;/span&gt; the previous weeks don't you think ? :)&lt;br /&gt;Now let's work on those mails and prepare this &lt;a href="http://www.eclipsecon.org/summiteurope2008/"&gt;great incoming Eclipse conference&lt;/a&gt; !&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;font-family:verdana;" &gt;(The title is a quote by Don Herold)&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5749374620125186414-9032892606062005784?l=model-driven-blogging.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://model-driven-blogging.blogspot.com/feeds/9032892606062005784/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5749374620125186414&amp;postID=9032892606062005784' title='2 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/9032892606062005784'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/9032892606062005784'/><link rel='alternate' type='text/html' href='http://model-driven-blogging.blogspot.com/2008/11/new-blog-new-projects.html' title='&quot;Babies are such a nice way to start people&quot;'/><author><name>Cédric Brun</name><uri>http://www.blogger.com/profile/17900773020510714946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_u5tMWln_Ie8/SRH3NgLBsHI/AAAAAAAAAAY/p_G-WB2DRaA/S220/author_photo.php.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_u5tMWln_Ie8/SQ83MaH5wxI/AAAAAAAAAAM/7U5ADFXexlg/s72-c/house_garden.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5749374620125186414.post-5567137760679978815</id><published>2008-03-25T15:24:00.000-07:00</published><updated>2009-05-07T08:24:04.334-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='community'/><category scheme='http://www.blogger.com/atom/ns#' term='acceleo'/><title type='text'>Amazing forest</title><content type='html'>Open-source projets are similar to tree in some ways. They are living through time and slowly but steadily growing, being much and much impressive and at some point far bigger than what people expected from the beginning.&lt;br /&gt;&lt;div&gt;&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_u5tMWln_Ie8/SXr9ljtDOSI/AAAAAAAAAEg/rkyorV0vi-w/s1600-h/sequoia1.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 214px; height: 320px;" src="http://2.bp.blogspot.com/_u5tMWln_Ie8/SXr9ljtDOSI/AAAAAAAAAEg/rkyorV0vi-w/s320/sequoia1.JPG" alt="" id="BLOGGER_PHOTO_ID_5294823133608622370" border="0" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_u5tMWln_Ie8/SXr9-gEUfAI/AAAAAAAAAEo/kyKuI51m55o/s1600-h/sequoia2.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 214px; height: 320px;" src="http://3.bp.blogspot.com/_u5tMWln_Ie8/SXr9-gEUfAI/AAAAAAAAAEo/kyKuI51m55o/s320/sequoia2.JPG" alt="" id="BLOGGER_PHOTO_ID_5294823562129210370" border="0" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_u5tMWln_Ie8/SXr-SufBPQI/AAAAAAAAAEw/H6PbomfdOcs/s1600-h/sequoia3.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 214px; height: 320px;" src="http://4.bp.blogspot.com/_u5tMWln_Ie8/SXr-SufBPQI/AAAAAAAAAEw/H6PbomfdOcs/s320/sequoia3.JPG" alt="" id="BLOGGER_PHOTO_ID_5294823909596675330" border="0" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_u5tMWln_Ie8/SXr-k29AciI/AAAAAAAAAE4/lARV5PBkuUU/s1600-h/sequoia4.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 214px; height: 320px;" src="http://4.bp.blogspot.com/_u5tMWln_Ie8/SXr-k29AciI/AAAAAAAAAE4/lARV5PBkuUU/s320/sequoia4.JPG" alt="" id="BLOGGER_PHOTO_ID_5294824221107581474" border="0" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;But they face aggressions from diseases, insects, industrial limber and are even in competition to get the needed piece of sun not to collapse. The license act as a protection concerning all these attacks, following the example of the Sequoïa’s tanin, the GPL protects the project from massive industrial exploitation without couterparts, and even if the people changes, the tree keeps groing up.&lt;/p&gt; &lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_u5tMWln_Ie8/SXr-0mvasxI/AAAAAAAAAFA/LMJVgxNI78o/s1600-h/IMG_2873.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 214px; height: 320px;" src="http://1.bp.blogspot.com/_u5tMWln_Ie8/SXr-0mvasxI/AAAAAAAAAFA/LMJVgxNI78o/s320/IMG_2873.JPG" alt="" id="BLOGGER_PHOTO_ID_5294824491633521426" border="0" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;But even big trees may fall if the roots are not deep enough, and like the sequoïas we would not even know the tree has fallen as the tanin keeps it alive for hundred years on the ground.&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_u5tMWln_Ie8/SXr_GGt1afI/AAAAAAAAAFI/AZzRDOdxh5M/s1600-h/IMG_2876.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 214px;" src="http://2.bp.blogspot.com/_u5tMWln_Ie8/SXr_GGt1afI/AAAAAAAAAFI/AZzRDOdxh5M/s320/IMG_2876.JPG" alt="" id="BLOGGER_PHOTO_ID_5294824792274594290" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;So, what kind of roots do we want now? &lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5749374620125186414-5567137760679978815?l=model-driven-blogging.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://model-driven-blogging.blogspot.com/feeds/5567137760679978815/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5749374620125186414&amp;postID=5567137760679978815' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/5567137760679978815'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/5567137760679978815'/><link rel='alternate' type='text/html' href='http://model-driven-blogging.blogspot.com/2008/03/amazing-forest.html' title='Amazing forest'/><author><name>Cédric Brun</name><uri>http://www.blogger.com/profile/17900773020510714946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_u5tMWln_Ie8/SRH3NgLBsHI/AAAAAAAAAAY/p_G-WB2DRaA/S220/author_photo.php.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_u5tMWln_Ie8/SXr9ljtDOSI/AAAAAAAAAEg/rkyorV0vi-w/s72-c/sequoia1.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5749374620125186414.post-7409205535843746444</id><published>2007-12-16T15:12:00.000-08:00</published><updated>2009-05-07T08:23:55.723-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='community'/><category scheme='http://www.blogger.com/atom/ns#' term='acceleo'/><category scheme='http://www.blogger.com/atom/ns#' term='chocolate'/><title type='text'>Chocolate commit</title><content type='html'>&lt;div&gt;&lt;p&gt;At &lt;a href="http://www.obeo.fr/"&gt;work&lt;/a&gt;we have a rule : if you commit something which does not compile, or that cause failure of the build, then you &lt;b&gt;have&lt;/b&gt;to bring back a chocolates candies box. &lt;/p&gt; &lt;p&gt;Many &lt;i&gt;“chocolate commits”&lt;/i&gt;happened lately and we manage to always get a candy for the coffee break. As I’m working on a quite tricky project I’m thinking ahead and I did prepare chocolates this morning.&lt;/p&gt;&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_u5tMWln_Ie8/SXr20u9p90I/AAAAAAAAAD4/CbjZO2yJfPU/s1600-h/img_2195.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 267px;" src="http://4.bp.blogspot.com/_u5tMWln_Ie8/SXr20u9p90I/AAAAAAAAAD4/CbjZO2yJfPU/s400/img_2195.jpg" alt="" id="BLOGGER_PHOTO_ID_5294815697747703618" border="0" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;The recipe is quite simple :&lt;/p&gt; &lt;ul&gt;&lt;li&gt;&lt;b&gt;dissolve&lt;/b&gt;/melt some&lt;span style="font-weight: bold;"&gt; chocolate&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0); background-color: rgb(255, 255, 102); font-weight: bold;"&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;wait&lt;/b&gt;a bit ’till it’s quite solid &lt;/li&gt;&lt;li&gt;&lt;b&gt;make&lt;/b&gt;tiny balls with the &lt;span style="font-weight: bold;"&gt;chocolate&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;roll&lt;/b&gt;them in sugar &lt;/li&gt;&lt;li&gt;&lt;b&gt;roll&lt;/b&gt;them in hot really black &lt;span style="font-weight: bold;"&gt;chocolate&lt;/span&gt; &lt;/li&gt;&lt;li&gt;&lt;b&gt;roll&lt;/b&gt;them in cacao powder &lt;/li&gt;&lt;li&gt;&lt;b&gt;wait&lt;/b&gt;a bit ’till it’s totally solid &lt;/li&gt;&lt;li&gt;&lt;b&gt;commit&lt;/b&gt;something using &lt;i&gt;String.isEmpty&lt;/i&gt;for instance, be sure someone notices the mistake fast &lt;/li&gt;&lt;li&gt;&lt;b&gt;bring&lt;/b&gt;the chocolates ! &lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5749374620125186414-7409205535843746444?l=model-driven-blogging.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://model-driven-blogging.blogspot.com/feeds/7409205535843746444/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5749374620125186414&amp;postID=7409205535843746444' title='1 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/7409205535843746444'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/7409205535843746444'/><link rel='alternate' type='text/html' href='http://model-driven-blogging.blogspot.com/2008/01/chocolate-commit.html' title='Chocolate commit'/><author><name>Cédric Brun</name><uri>http://www.blogger.com/profile/17900773020510714946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_u5tMWln_Ie8/SRH3NgLBsHI/AAAAAAAAAAY/p_G-WB2DRaA/S220/author_photo.php.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_u5tMWln_Ie8/SXr20u9p90I/AAAAAAAAAD4/CbjZO2yJfPU/s72-c/img_2195.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5749374620125186414.post-1840137971958799596</id><published>2007-10-11T16:33:00.000-07:00</published><updated>2009-05-07T08:23:43.180-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='community'/><category scheme='http://www.blogger.com/atom/ns#' term='acceleo'/><category scheme='http://www.blogger.com/atom/ns#' term='modeling'/><title type='text'>Modeling at ESE 2007</title><content type='html'>&lt;div class="entry"&gt; &lt;div class="content"&gt; &lt;p&gt;Eclipse summit is almost over now, a lot of things happened and the modeling project is, for sure, really lively.&lt;/p&gt; &lt;p&gt;Many talks were targeted at people interested in models, great tools and business cases using these tools just show you may benefit using models. On a more personnal side the &lt;a title="EMF Compare talk" target="_blank" href="http://web.archive.org/web/20071014071148/http://web.archive.org/web/20071014071148/http://www.eclipsesummit.org/summiteurope2007/index.php?page=detail/&amp;amp;id=24"&gt;EMF Compare talk&lt;/a&gt; went really smoothly, the room was crowded and people had interesting questions about wether this component would be able to solve this or that issue. If you’re interested in getting the slides, they are available&lt;a title="here" target="_blank" href="http://web.archive.org/web/20071014071148/http://web.archive.org/web/20071014071148/http://cedric.brun.free.fr/EMFCompare_OneYearLater.pdf"&gt; here.&lt;/a&gt;&lt;/p&gt; &lt;p&gt;The Rich &amp;amp; Ed talk really showed EMF, GMF and Modeling projects in general may be used together to produce complete toolchain, well, the mindmap domain could be seen as a bit trivial but doing so much things in such a short demo is already a challenge without considering a more complexe domain.&lt;/p&gt; &lt;p&gt;Integration has been discussed during the Modeling Symposium, basically technical and “user-centric” integration is something we really need in the eco-system. Discussions has been started with the GMF people about providing integration with “compare” but this is quite a challenging subject too.&lt;/p&gt; &lt;p&gt;QVT was also a hot subject, well we can be quite confident&lt;a title="Quentin" href="http://web.archive.org/web/20071014071148/http://web.archive.org/web/20071014071148/http://dev.eclipse.org/mhonarc/lists/m2m-dev/msg00014.html"&gt; Quentin&lt;/a&gt; will manage to provide a nice QVT-Relational component.&lt;br /&gt;More information will follow on these subjects, on a another side Trolltech guys were here and were very nice too and the poster reception (free beer \o/ ) eased to meet people from really different parts of Eclipse.&lt;/p&gt; &lt;p&gt;During this session I had been able to see a comparison tool for the HL7 standards which was using a similar approach than EMF compare, the author was very friendly and I’m looking forward to a possible collaboration.&lt;/p&gt; &lt;p&gt;Just a downside on this event, well, Nick was not there so I had not been able to offer him beer for his help in setting up the emf compare build, let’s just hope I wont owe you more beer since we see each other again or you’ll quickly get drunk &lt;img src="http://web.archive.org/web/20071014071148/file:///home/chipotortoose/C%C3%A9dric/Acceleo%20:%20g%C3%A9n%C3%A9rateur%20MDA%20-%20Planete%20Acceleo_fichiers/icon_smile_002.gif" alt=":)" class="wp-smiley" /&gt; &lt;/p&gt; &lt;/div&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5749374620125186414-1840137971958799596?l=model-driven-blogging.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://model-driven-blogging.blogspot.com/feeds/1840137971958799596/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5749374620125186414&amp;postID=1840137971958799596' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/1840137971958799596'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/1840137971958799596'/><link rel='alternate' type='text/html' href='http://model-driven-blogging.blogspot.com/2007/11/modeling-at-ese-2007.html' title='Modeling at ESE 2007'/><author><name>Cédric Brun</name><uri>http://www.blogger.com/profile/17900773020510714946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_u5tMWln_Ie8/SRH3NgLBsHI/AAAAAAAAAAY/p_G-WB2DRaA/S220/author_photo.php.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5749374620125186414.post-6103436277211914396</id><published>2007-09-12T03:02:00.000-07:00</published><updated>2009-05-07T08:23:27.044-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='compare'/><category scheme='http://www.blogger.com/atom/ns#' term='acceleo'/><category scheme='http://www.blogger.com/atom/ns#' term='modeling'/><title type='text'>" I love deadlines...</title><content type='html'>&lt;div class="entry"&gt; &lt;div class="content"&gt; &lt;p&gt;… I like the whooshing sound they make as they go by.” &lt;em&gt;D. Adams&lt;/em&gt;&lt;/p&gt; &lt;p&gt;Here it comes, the first release of the emf compare component ! You can download it on the &lt;a href="http://www.eclipse.org/modeling/emft/downloads/?project=compare"&gt;website&lt;/a&gt; and use it for your every-day work, if it doesn’t fit,&lt;a href="https://bugs.eclipse.org/bugs/enter_bug.cgi?product=EMFT"&gt; &lt;/a&gt;&lt;a href="https://bugs.eclipse.org/bugs/enter_bug.cgi?product=EMFT"&gt;report a bug&lt;/a&gt;, works keeps going in the maintenance branch and in the CVS head.&lt;/p&gt; &lt;p&gt;So, what will I get with this piece of software :&lt;/p&gt; &lt;ul&gt;&lt;li&gt;&lt;strong&gt;Model comparison and merge&lt;/strong&gt;: that’s good news as it’s the main objective of this project. You will be able to compare any EMF model, serialized in files or not, coming from XSD or a twisted metamodel. &lt;/li&gt;&lt;li&gt;            &lt;strong&gt;ID (xmi or Ecore) support&lt;/strong&gt; : if your model provides ID, they will be used in the comparison process.         &lt;/li&gt;&lt;li&gt;            &lt;strong&gt;SCM management&lt;/strong&gt; : thanks to the Eclipse compare framework you will be able to compare versions of models in CVS or SVN repository.         &lt;/li&gt;&lt;li&gt;            &lt;strong&gt;Sexy user interface&lt;/strong&gt; : I know we said at EclipseCon we would not focus our work on the user interface, but thanks to Laurent’s work the result has outperformed our expectations. &lt;/li&gt;&lt;li&gt;            &lt;strong&gt;“EMF only” dependent core&lt;/strong&gt; : the core, responsible for comparison and merge, only depend on EMF and as such is easily re-usable.         &lt;/li&gt;&lt;li&gt;            &lt;strong&gt;Extensible framework&lt;/strong&gt; : let’s say you have a shiny new idea about model comparison, or that on your specific kind of model you could setup a strategy to match 2 elements, then you can define your own engine and EMF Compare will use it. &lt;/li&gt;&lt;li&gt;            &lt;strong&gt;Export diff&lt;/strong&gt; :  you may save your diff in a file (emfdiff) and then re-open-it later without computation.         &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;So what, let’s have a look now, &lt;/p&gt; &lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_u5tMWln_Ie8/SXr31CbaTSI/AAAAAAAAAEA/iECbfJih_TE/s1600-h/gmfgraph-current-and-129.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 384px; height: 276px;" src="http://3.bp.blogspot.com/_u5tMWln_Ie8/SXr31CbaTSI/AAAAAAAAAEA/iECbfJih_TE/s400/gmfgraph-current-and-129.png" alt="" id="BLOGGER_PHOTO_ID_5294816802484407586" border="0" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Where is the doc ?&lt;/strong&gt;&lt;br /&gt;The bundle only provides reference doc right now, in order to get up-to-date FAQ, tutorials or design overview stay tuned on the &lt;a href="http://wiki.eclipse.org/EMF_Compare"&gt;wiki&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;What’s next ?&lt;/strong&gt;&lt;br /&gt;Next release (0.8.0) will provide 3 way comparison, diff extensions and many other nice stuffs. Concerning the algorithms we are trying to get better results with generic comparison algorithm through other methods coming from the research world. An initiative (&lt;a href="http://www.model-transformation.org/"&gt;website&lt;/a&gt;) about model transformation/weaving and comparison is taking place in Europe an you may expect that the EMF compare implementation will evolve toward these works.&lt;/p&gt; &lt;p&gt; We will also take part in the Ganymede simultaneus release to help in providing a coordinated modeling distribution.&lt;/p&gt; &lt;p&gt;I’ll give a &lt;a href="http://eclipsesummit.org/summiteurope2007/index.php?page=detail/&amp;amp;id=24"&gt;talk at ESE&lt;/a&gt; about all these nice stuffs and the potential use of this component in other Eclipse tools, it will be a great place for exchanges, if your interested in, do not hesitate &lt;img src="http://web.archive.org/web/20071014071148/file:///home/chipotortoose/C%C3%A9dric/Acceleo%20:%20g%C3%A9n%C3%A9rateur%20MDA%20-%20Planete%20Acceleo_fichiers/icon_wink.gif" alt=";)" class="wp-smiley" /&gt; &lt;/p&gt; &lt;/div&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5749374620125186414-6103436277211914396?l=model-driven-blogging.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://model-driven-blogging.blogspot.com/feeds/6103436277211914396/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5749374620125186414&amp;postID=6103436277211914396' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/6103436277211914396'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/6103436277211914396'/><link rel='alternate' type='text/html' href='http://model-driven-blogging.blogspot.com/2007/09/i-love-deadlines.html' title='&quot; I love deadlines...'/><author><name>Cédric Brun</name><uri>http://www.blogger.com/profile/17900773020510714946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_u5tMWln_Ie8/SRH3NgLBsHI/AAAAAAAAAAY/p_G-WB2DRaA/S220/author_photo.php.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_u5tMWln_Ie8/SXr31CbaTSI/AAAAAAAAAEA/iECbfJih_TE/s72-c/gmfgraph-current-and-129.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5749374620125186414.post-2795164138278148919</id><published>2007-08-22T03:14:00.000-07:00</published><updated>2009-05-07T08:24:53.383-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='community'/><category scheme='http://www.blogger.com/atom/ns#' term='qt'/><title type='text'>New licenses for QT : any progress on Eclipse ?</title><content type='html'>&lt;div class="entry"&gt; &lt;div class="content"&gt; &lt;p&gt;A few days ago the &lt;a href="http://www.trolltechs.com/"&gt;trolls&lt;/a&gt; opened their &lt;a href="http://en.wikipedia.org/wiki/Qt_%28toolkit%29"&gt;great framework&lt;/a&gt; a bit more adding &lt;a href="http://trolltech.com/products/qt/gplexception"&gt;new licence exceptions&lt;/a&gt; on their Free Software edition. This means Qt software can be used along with a larger range of other Free Software libraries and dependencies. One of these licenses is the ” Common Public License - 1.0″.&lt;/p&gt; &lt;p&gt;Discussions took place a long time ago about using QT as a toolkit for Eclipse (the same way we use GTK) and AFAIK the blocking point was its license. As a Linux user I’m a big fan of QT and I often cries concerning the GTK slowness. QT applications feel a lot more responsive and each release brings really nice features like a broad SVG support or soon a &lt;a href="http://en.wikipedia.org/wiki/Webkit"&gt;webkit &lt;/a&gt;component. Moreover this toolkit is cross-platform, I had a chance to use it coding a Python/QT application and it was effectively working on Linux/Windows and MacOSX without recompilation providing a native look and feel.&lt;/p&gt; &lt;p&gt;Lately Trolltech went toward the Java world with&lt;a href="http://trolltech.com/developer/downloads/qt/qtjambi-techpreview"&gt; &lt;/a&gt;&lt;a href="http://trolltech.com/developer/downloads/qt/qtjambi-techpreview"&gt;QT Jambi&lt;/a&gt;, and more especially toward &lt;a href="http://trolltech.com/company/newsroom/announcements/press.2007-05-24.8884335791"&gt;Eclipse&lt;/a&gt; providing a full set of plugins for user interfaces design.&lt;/p&gt; &lt;p&gt;Did this licenses extension changed something concerning an eventual SWT/QT integration ? Do anybody want to share information ? &lt;/p&gt; &lt;/div&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5749374620125186414-2795164138278148919?l=model-driven-blogging.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://model-driven-blogging.blogspot.com/feeds/2795164138278148919/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5749374620125186414&amp;postID=2795164138278148919' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/2795164138278148919'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/2795164138278148919'/><link rel='alternate' type='text/html' href='http://model-driven-blogging.blogspot.com/2007/08/new-licenses-for-qt-any-progress-on.html' title='New licenses for QT : any progress on Eclipse ?'/><author><name>Cédric Brun</name><uri>http://www.blogger.com/profile/17900773020510714946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_u5tMWln_Ie8/SRH3NgLBsHI/AAAAAAAAAAY/p_G-WB2DRaA/S220/author_photo.php.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5749374620125186414.post-1537091550117102333</id><published>2007-06-08T03:18:00.000-07:00</published><updated>2009-05-07T08:24:25.390-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cartography'/><title type='text'>Beautiful Evidence</title><content type='html'>When I discovered the &lt;a href="http://nodebox.net/code/index.php/Home"&gt; NodeBox project&lt;/a&gt;, that thought (in fact - a &lt;a href="http://www.edwardtufte.com/tufte/books_be"&gt;book title&lt;/a&gt; ) immediatly catched my mind.&lt;br /&gt;&lt;div class="entry"&gt;&lt;div class="content"&gt;&lt;p&gt;Tufte is right when he says that &lt;em&gt;“The commonality between science and art is in trying to see profoundly - to develop strategies of seeing and showing.”&lt;/em&gt;, analysis needs relevent and beautiful representations. Here these representations may be animated, and that’s another big point, the first purpose of our mind associated with our eye is to &lt;strong&gt;analyse moving representations and finding out visual inconsistencies&lt;/strong&gt;.&lt;/p&gt; &lt;p&gt;The &lt;a href="http://web.archive.org/web/20071014071148/http://web.archive.org/web/20071014071148/http://nodebox.net/code/index.php/Gallery"&gt;gallery &lt;/a&gt; provided for that tool is just amazing, mixing different research domains, using the web as an information pool and providing “near artistic” representation. &lt;/p&gt; &lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_u5tMWln_Ie8/SXr5yUG5asI/AAAAAAAAAEI/cou5mq4bdfo/s1600-h/graph1.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 274px; height: 320px;" src="http://3.bp.blogspot.com/_u5tMWln_Ie8/SXr5yUG5asI/AAAAAAAAAEI/cou5mq4bdfo/s320/graph1.jpg" alt="" id="BLOGGER_PHOTO_ID_5294818954713852610" border="0" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_u5tMWln_Ie8/SXr52XO4HoI/AAAAAAAAAEQ/lTn4THGhCv4/s1600-h/conceptnet1.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 249px; height: 320px;" src="http://2.bp.blogspot.com/_u5tMWln_Ie8/SXr52XO4HoI/AAAAAAAAAEQ/lTn4THGhCv4/s320/conceptnet1.gif" alt="" id="BLOGGER_PHOTO_ID_5294819024272105090" border="0" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_u5tMWln_Ie8/SXr57j5ldPI/AAAAAAAAAEY/2hUs5mgR0RU/s1600-h/organic_universe1.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 320px;" src="http://4.bp.blogspot.com/_u5tMWln_Ie8/SXr57j5ldPI/AAAAAAAAAEY/2hUs5mgR0RU/s320/organic_universe1.jpg" alt="" id="BLOGGER_PHOTO_ID_5294819113571808498" border="0" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Do I need to say this project is made in &lt;a href="http://www.python.org/"&gt;Python&lt;/a&gt;  &lt;img src="http://web.archive.org/web/20071014071148/file:///home/chipotortoose/C%C3%A9dric/Acceleo%20:%20g%C3%A9n%C3%A9rateur%20MDA%20-%20Planete%20Acceleo_fichiers/icon_wink.gif" alt=";)" class="wp-smiley" /&gt; ? Well, most of the time, projects using many other libraries gluing them in order to provide unexpected results tend to be in Python. The bad news about this one is it seems to be exclusively MacOSX compatible, but lets hope the &lt;a href="http://web.archive.org/web/20071014071148/http://web.archive.org/web/20071014071148/http://research.nodebox.net/NodeBoxDev"&gt;2.0 release&lt;/a&gt; using &lt;a href="http://web.archive.org/web/20071014071148/http://web.archive.org/web/20071014071148/http://www.jython.org/Project/index.html"&gt;Jython&lt;/a&gt;  will hit the ground soon, this one could work, at least, on Windows. &lt;/p&gt; &lt;/div&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5749374620125186414-1537091550117102333?l=model-driven-blogging.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://model-driven-blogging.blogspot.com/feeds/1537091550117102333/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5749374620125186414&amp;postID=1537091550117102333' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/1537091550117102333'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/1537091550117102333'/><link rel='alternate' type='text/html' href='http://model-driven-blogging.blogspot.com/2007/06/beautiful-evidence.html' title='Beautiful Evidence'/><author><name>Cédric Brun</name><uri>http://www.blogger.com/profile/17900773020510714946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_u5tMWln_Ie8/SRH3NgLBsHI/AAAAAAAAAAY/p_G-WB2DRaA/S220/author_photo.php.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_u5tMWln_Ie8/SXr5yUG5asI/AAAAAAAAAEI/cou5mq4bdfo/s72-c/graph1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5749374620125186414.post-7806924588807923933</id><published>2007-06-05T21:50:00.000-07:00</published><updated>2009-01-24T03:48:37.132-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='acceleo'/><title type='text'>“Simplicity is the ultimate sophistication”</title><content type='html'>&lt;div class="entry"&gt; &lt;div class="content"&gt; &lt;p&gt;Leonardo Da Vinci was damn right about it, and Acceleo 2.0 is just another step in the right direction.&lt;br /&gt;As planned we released this new stable version today. Have a look on the &lt;a href="http://www.acceleo.org/pages/new-and-noteworthy-acceleo-2-0-0/"&gt;new and noteworthy&lt;/a&gt; to get an idea of the exciting features.&lt;/p&gt; &lt;p&gt;Ready-to-use bundles are available on the &lt;a href="http://www.acceleo.org/pages/download-acceleo-2-0-0/"&gt;download page&lt;/a&gt; providing Eclipse, Acceleo, its dependencies, the whole set of generator modules and usefull other plugins like Subversive or Topcased.&lt;/p&gt; &lt;p&gt;This release mark the opening of the project to a broader community: people gathered to provide open source generator modules for &lt;a href="http://www.acceleo.org/pages/modules-repository/"&gt; JEE, CSharp, Php or Python&lt;/a&gt;.  This set is made of stable and feature-full generators but also of experimental ones.&lt;br /&gt;I do not forget about generators not yet ready to be released, mentionning Wisss or Enterprise Application no doubts they will soon bring new exciting technologies ! &lt;/p&gt; &lt;p&gt;The Acceleo website had a huge makeover for the 2.0.0 release, more especially in the &lt;a href="http://www.acceleo.org/pages/introduction/"&gt;documentation&lt;/a&gt; and &lt;a href="http://www.acceleo.org/pages/development/"&gt;development&lt;/a&gt;  sections. Speaking about documentation another great news is that fact that the &lt;a href="http://www.obeo.fr/pages/acceleo/doc/"&gt;“Obeo advanced documentation”&lt;/a&gt; is now free for a commercial use too !&lt;/p&gt; &lt;p&gt;Don’t miss the new &lt;a href="http://web.archive.org/web/20071014071148/http://web.archive.org/web/20071014071148/http://www.acceleo.org/pages/participez-au-projet-acceleo/"&gt; “Take Part in Acceleo”&lt;/a&gt; page opening to various contributions users, architects or developers are able to do.&lt;/p&gt; &lt;p&gt;Still, to get to ultimate sophistication, we need your feedback ! Do not hesitate to interact with the team !&lt;/p&gt; &lt;/div&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5749374620125186414-7806924588807923933?l=model-driven-blogging.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://model-driven-blogging.blogspot.com/feeds/7806924588807923933/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5749374620125186414&amp;postID=7806924588807923933' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/7806924588807923933'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/7806924588807923933'/><link rel='alternate' type='text/html' href='http://model-driven-blogging.blogspot.com/2007/06/simplicity-is-ultimate-sophistication.html' title='“Simplicity is the ultimate sophistication”'/><author><name>Cédric Brun</name><uri>http://www.blogger.com/profile/17900773020510714946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_u5tMWln_Ie8/SRH3NgLBsHI/AAAAAAAAAAY/p_G-WB2DRaA/S220/author_photo.php.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5749374620125186414.post-3398213415942634780</id><published>2007-03-26T14:43:00.000-07:00</published><updated>2010-03-01T00:37:42.802-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='compare'/><category scheme='http://www.blogger.com/atom/ns#' term='modeling'/><title type='text'>EMF Compare now uses XMI_ID</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.eclipse.org/modeling/emf/compare/images/screenshot.png"&gt;&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;The generic emf comparison engine uses statistics in order to match elements, it compare their content, their type, the relations with other objects and their name. This process gives good results on many metamodels, especially specific ones, but this process can be costly for instance on UML models because we’ve got many attributes on each element. On the other side, big models and standards ones are often serialized in XMI using Id’s .&lt;br /&gt;The generic engine now uses these id’s if they are available, in order to find matching elements, the cost is just about zero and the correctness is good. Next step is to use the functionnal Id’s one may define in an Ecore metamodel.&lt;br /&gt;Here comes a screenshot showing the current state of the emf compare project, comparing two UML files.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.eclipse.org/modeling/emf/compare/images/screenshot.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 802px; height: 522px;" src="http://www.eclipse.org/modeling/emf/compare/images/screenshot.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_u5tMWln_Ie8/SXsGzm27poI/AAAAAAAAAFg/mG1Jn0Q1uqY/s1600-h/uml-xmiid.png"&gt;&lt;br /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5749374620125186414-3398213415942634780?l=model-driven-blogging.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://model-driven-blogging.blogspot.com/feeds/3398213415942634780/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5749374620125186414&amp;postID=3398213415942634780' title='2 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/3398213415942634780'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/3398213415942634780'/><link rel='alternate' type='text/html' href='http://model-driven-blogging.blogspot.com/2007/03/emf-compare-now-uses-xmiid.html' title='EMF Compare now uses XMI_ID'/><author><name>Cédric Brun</name><uri>http://www.blogger.com/profile/17900773020510714946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_u5tMWln_Ie8/SRH3NgLBsHI/AAAAAAAAAAY/p_G-WB2DRaA/S220/author_photo.php.jpeg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5749374620125186414.post-1637851078079211243</id><published>2007-03-20T17:34:00.000-07:00</published><updated>2009-05-07T08:25:06.025-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='compare'/><category scheme='http://www.blogger.com/atom/ns#' term='acceleo'/><category scheme='http://www.blogger.com/atom/ns#' term='modeling'/><title type='text'>XML files comparison/merge</title><content type='html'>On the EMFT mailling-list Martin Taal asked me if EMF compare component was usefull when one has to handle XML file.&lt;br /&gt;&lt;br /&gt;Thanks to the EMF/XSD project this feature just comes at no cost ! If you create your metamodel using an XSD then the model will be serialized in it’s native XML format but in the emf compare point of view it’s just another EMF model ! Then you’re able to compare, and of course merge modifications on the files.&lt;br /&gt;Here’s a screenshot of the tool comparing two XML files coming from the well known “Library” example (sorry I did not put nice icons on the models ;) )&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_u5tMWln_Ie8/SXsDG5Moo5I/AAAAAAAAAFY/kxbeVOlsmFU/s1600-h/emfcomparexml.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 294px;" src="http://1.bp.blogspot.com/_u5tMWln_Ie8/SXsDG5Moo5I/AAAAAAAAAFY/kxbeVOlsmFU/s400/emfcomparexml.png" alt="" id="BLOGGER_PHOTO_ID_5294829203872064402" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The XSD project really should have more visibility, it’s obviously usefull in many use cases where XML matters and EMF provides so much nice features, you should not miss that !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5749374620125186414-1637851078079211243?l=model-driven-blogging.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://model-driven-blogging.blogspot.com/feeds/1637851078079211243/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5749374620125186414&amp;postID=1637851078079211243' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/1637851078079211243'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/1637851078079211243'/><link rel='alternate' type='text/html' href='http://model-driven-blogging.blogspot.com/2007/03/xml-files-comparisonmerge.html' title='XML files comparison/merge'/><author><name>Cédric Brun</name><uri>http://www.blogger.com/profile/17900773020510714946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_u5tMWln_Ie8/SRH3NgLBsHI/AAAAAAAAAAY/p_G-WB2DRaA/S220/author_photo.php.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_u5tMWln_Ie8/SXsDG5Moo5I/AAAAAAAAAFY/kxbeVOlsmFU/s72-c/emfcomparexml.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5749374620125186414.post-1517889382020277273</id><published>2007-03-13T08:38:00.000-07:00</published><updated>2009-05-07T08:25:19.849-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='eclipsecon'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='community'/><category scheme='http://www.blogger.com/atom/ns#' term='acceleo'/><title type='text'>Joining the community</title><content type='html'>First time blogging , many first times these days :)&lt;br /&gt;As the EMF Compare project lead I had to go to &lt;a href="http://www.eclipsecon.org/2007/"&gt;EclipseCon, &lt;/a&gt;the component has just been accepted so it was the first time for me to follow EclipseCon from the inside and not from Planet Eclipse.&lt;br /&gt;The event was just great, the interesting people are countless and the Eclipse world is amazing by many aspects. I attended many talks, for a modelling guy like me many stuffs were interesting.&lt;br /&gt;EMF/EMFT was present everywhere, it’s the basis for many tools and software and it deserves to, it just cover the need everybody has using data and models, serialization, notification, validation, transaction or now relational database storage thanks to the Teneo project.&lt;br /&gt;EclipseCon allow you to meet the people behind all theses projects and to have a quick glance of the other projects, the data binding stuffs were just great as the&lt;a href="http://www.eclipse.org/mylar/zest.php"&gt; Zest framework&lt;/a&gt; from Ian Bull and the &lt;a href="http://www.eclipsecon.org/2007/index.php?page=sub/&amp;amp;id=3703"&gt;UML talk&lt;/a&gt; done by Kenn Hussey.&lt;br /&gt;I did a panel there about the EMF Compare component with Antoine Toulme, Jean Bezivin and Ed Merks, it was quite good as the audience had many reactions. I emphasized there the fact that we are aiming to provide a great basis for other tools to work with, a basic UI for comparison and merge (same as the JDT) but no diagram support yet. As the tool is metamodel agnostic, meaning you are able to compare UML or Ecore or anything else, questions were asked about providing special behavior like, for instance, custom dependencies management while merging. Good point there, we’ll try to provide a mecanism for that!&lt;br /&gt;I also did a poster session about the code generator Acceleo, nice reactions there too, people would like to use a MDA approach but most of the tools are quite hard to tackle, Acceleo is just great about that, it’s easy to install, to use and you may generate any kind of text.&lt;br /&gt;In a nutshell the event was great, special thanks to all the staff there and I’m looking forward to see everybody back at Eclipse Summit !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5749374620125186414-1517889382020277273?l=model-driven-blogging.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://model-driven-blogging.blogspot.com/feeds/1517889382020277273/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5749374620125186414&amp;postID=1517889382020277273' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/1517889382020277273'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5749374620125186414/posts/default/1517889382020277273'/><link rel='alternate' type='text/html' href='http://model-driven-blogging.blogspot.com/2007/03/joining-community.html' title='Joining the community'/><author><name>Cédric Brun</name><uri>http://www.blogger.com/profile/17900773020510714946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_u5tMWln_Ie8/SRH3NgLBsHI/AAAAAAAAAAY/p_G-WB2DRaA/S220/author_photo.php.jpeg'/></author><thr:total>0</thr:total></entry></feed>
