<?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-8684155425640756294</id><updated>2012-02-16T08:57:45.337-08:00</updated><title type='text'>Jo MD blog</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://jomd.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8684155425640756294/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://jomd.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Jonathan Musset</name><uri>http://www.blogger.com/profile/14571074456739152583</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_LdJ_YM5dw4g/Sr0Ltzy7QmI/AAAAAAAAAhM/yfITC-ajSPU/S220/Jo-100.png'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>39</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8684155425640756294.post-769271725103817948</id><published>2011-02-18T08:32:00.000-08:00</published><updated>2011-02-18T08:52:20.182-08:00</updated><title type='text'>My new blog about filmmaking and open source</title><content type='html'>&lt;div&gt;In parallel with my computing activity, I decided to open a new blog about filmmaking, to share my experiences in this domain... &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I will talk about independent filmmaking, DSLR cinema, new amazing DSLR techniques, film production processes, directing, cinematography... and how the openness and the innovation of free software spirit can also improve all that stuff...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://jonathan-cinema.blogspot.com/"&gt;Here&lt;/a&gt; is the link... See you later on this blog or on the other one...&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8684155425640756294-769271725103817948?l=jomd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jomd.blogspot.com/feeds/769271725103817948/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8684155425640756294&amp;postID=769271725103817948' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8684155425640756294/posts/default/769271725103817948'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8684155425640756294/posts/default/769271725103817948'/><link rel='alternate' type='text/html' href='http://jomd.blogspot.com/2011/02/my-new-blog-about-filmmaking-and-open.html' title='My new blog about filmmaking and open source'/><author><name>Jonathan Musset</name><uri>http://www.blogger.com/profile/14571074456739152583</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_LdJ_YM5dw4g/Sr0Ltzy7QmI/AAAAAAAAAhM/yfITC-ajSPU/S220/Jo-100.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8684155425640756294.post-3417866844697078190</id><published>2010-10-28T06:15:00.000-07:00</published><updated>2010-10-28T10:05:31.450-07:00</updated><title type='text'>How to create working Android applications using Eclipse modeling techniques</title><content type='html'>&lt;div style="text-align: justify;"&gt;Several months ago, at Eclipse Con 2010, I presented a talk titled "&lt;a href="http://www.eclipsecon.org/2010/sessions/sessions?id=1165"&gt;Acceleo Code Generation : Let's start with an Android example&lt;/a&gt;". This is the &lt;a href="http://www.obeo.fr/videos/acceleo-eclipse/eclipse-modeling-runaway-acceleo.htm"&gt;demo&lt;/a&gt;.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;At Eclipse Summit Europe, we will do the &lt;a href="http://www.eclipsecon.org/summiteurope2010/sessions/?page=sessions&amp;amp;id=1833"&gt;talk again&lt;/a&gt;. This time, I won't participate... But, &lt;a href="http://mdenutshell.blogspot.com/"&gt;Mikael Barbero&lt;/a&gt; and &lt;a href="http://sbegaudeau.tumblr.com/"&gt;Stephane Begaudeau&lt;/a&gt; will show an advanced version of this tutorial : "&lt;a href="http://www.eclipsecon.org/summiteurope2010/sessions/?page=sessions&amp;amp;id=1833"&gt;Creating a Language for Android Apps with Eclipse Modeling&lt;/a&gt;". Both are software engineers at &lt;a href="http://www.obeo.fr/"&gt;Obeo&lt;/a&gt;. They have worked on this 4 hours tutorial with &lt;a href="http://koehnlein.blogspot.com/search/label/Eclipse"&gt;Jan Koehnlein&lt;/a&gt; and Holger Schill from &lt;a href="http://www.itemis.com/"&gt;Itemis&lt;/a&gt;.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;In this &lt;a href="http://www.eclipsecon.org/summiteurope2010/sessions/?page=sessions&amp;amp;id=1833"&gt;tutorial&lt;/a&gt;, attendees will create working Android applications using Eclipse modeling techniques. This talk will start with a short presentation of Android and its development tools. Then the attendees will learn how to define abstractions using &lt;a href="http://www.eclipse.org/modeling/emf/"&gt;EMF&lt;/a&gt; Ecore and how to create a language and an editor for these with &lt;a href="http://www.eclipse.org/Xtext"&gt;Xtext&lt;/a&gt;. Finally, they will implement a generator that creates the Java and XML source code of the Android application with the help of &lt;a href="http://www.eclipse.org/acceleo"&gt;Acceleo&lt;/a&gt;. The team will demonstrate how these ingredients are integrated into the Eclipse workbench just like Java and XML do.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Thank you guys for the good job you have done to prepare this tutorial. That kicks ass! The result seems to be very impressive...&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;This tutorial will also be interesting for beginners... Being an expert at code generation or Acceleo is not necessary to get started on your first code generator : using the Acceleo editor and the powerful features it exposes (completion, syntax highlighting, on-the-fly compilation, quick outline, ...), it is very easy to get started once you understand the most basic principles. &lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://3.bp.blogspot.com/_LdJ_YM5dw4g/TMl61VOSWgI/AAAAAAAABJM/UhSq5k7srWY/s1600/teasing.png"&gt;&lt;img src="http://3.bp.blogspot.com/_LdJ_YM5dw4g/TMl61VOSWgI/AAAAAAAABJM/UhSq5k7srWY/s320/teasing.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5533088673850087938" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 320px; height: 233px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;pre wrap=""&gt;&lt;a href="http://www.flickr.com/photos/laihiu/4407979507/"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;Flickr/androids eat apples!/laihiu&lt;/span&gt;&lt;/a&gt; &lt;/pre&gt;&lt;pre wrap=""&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, serif; white-space: normal; font-size: 16px; "&gt;&lt;div style="text-align: justify; "&gt;&lt;a href="http://www.eclipsecon.org/summiteurope2010/sessions/?page=sessions&amp;amp;id=1844"&gt;Goulwen Le Fur&lt;/a&gt; will also be at Eclipse Summit Europe 2010 and he will talk about EEF, this very usefull component I have talked about several times this year.&lt;/div&gt;&lt;div style="text-align: justify; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; "&gt;&lt;a href="http://1.bp.blogspot.com/_LdJ_YM5dw4g/TMmr_NNtrNI/AAAAAAAABJU/8g06gL1mo4I/s1600/pres+eef.png"&gt;&lt;img src="http://1.bp.blogspot.com/_LdJ_YM5dw4g/TMmr_NNtrNI/AAAAAAAABJU/8g06gL1mo4I/s320/pres+eef.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5533142719568653522" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 320px; height: 239px; " /&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;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8684155425640756294-3417866844697078190?l=jomd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jomd.blogspot.com/feeds/3417866844697078190/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8684155425640756294&amp;postID=3417866844697078190' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8684155425640756294/posts/default/3417866844697078190'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8684155425640756294/posts/default/3417866844697078190'/><link rel='alternate' type='text/html' href='http://jomd.blogspot.com/2010/10/how-to-create-working-android.html' title='How to create working Android applications using Eclipse modeling techniques'/><author><name>Jonathan Musset</name><uri>http://www.blogger.com/profile/14571074456739152583</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_LdJ_YM5dw4g/Sr0Ltzy7QmI/AAAAAAAAAhM/yfITC-ajSPU/S220/Jo-100.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_LdJ_YM5dw4g/TMl61VOSWgI/AAAAAAAABJM/UhSq5k7srWY/s72-c/teasing.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8684155425640756294.post-7106751651801167692</id><published>2010-07-12T02:02:00.000-07:00</published><updated>2010-07-12T02:51:35.669-07:00</updated><title type='text'>Spain are world champions and Fanny wins the Eclipse forecasts</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_LdJ_YM5dw4g/TDrfOpFFWqI/AAAAAAAABI4/DIkj6wWaemM/s1600/Spain.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 176px; height: 108px;" src="http://4.bp.blogspot.com/_LdJ_YM5dw4g/TDrfOpFFWqI/AAAAAAAABI4/DIkj6wWaemM/s200/Spain.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5492948138170079906" /&gt;&lt;/a&gt;&lt;div style="text-align: center;"&gt;&lt;b&gt;España Gana la Copa!&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: justify;"&gt;&lt;img src="http://3.bp.blogspot.com/_LdJ_YM5dw4g/TDrdA3_7JpI/AAAAAAAABIg/cKsSZtW28SU/s320/Fanny.png" style="text-align: justify;float: right; margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 10px; cursor: pointer; width: 197px; height: 156px; " border="0" alt="" id="BLOGGER_PHOTO_ID_5492945702633547410" /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Spain victory is the fruit of a lot of work. &lt;a href="http://en.wikipedia.org/wiki/Andr%C3%A9s_Iniesta"&gt;Andres Iniesta&lt;/a&gt; was the man of the match for the final game. He is to be congratulated for that. However, I would like to highlight another person today, the woman who wins the Eclipse EEF world cup forecasts. She isn't an Eclipse commiter but she lives with an active Eclipse modeling commiter. This is something that needs considering, isn't it? ;) Thanks for all those who share our life, like you... I'm surprised that you have more points than me ;) I also give you thanks for showing us that women know soccer as much as men, and above all that an Eclipse RCP application is also usable by a non-computer scientist ;)&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Thanks to the &lt;a href="http://www.eclipse.org/modeling/emft/?project=eef"&gt;EEF&lt;/a&gt; and the &lt;a href="http://www.eclipse.org/acceleo"&gt;Acceleo&lt;/a&gt; teams that created this nice application in few days. &lt;a href="http://www.eclipse.org/modeling/emft/?project=eef"&gt;EEF&lt;/a&gt; deserves to be adopted.&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;This is the &lt;a href="http://www.obeo.fr/download/eef/samples/wc2010/results.html"&gt;final ranking table&lt;/a&gt; of the &lt;a href="http://wiki.eclipse.org/EEF_Sample_World_Cup_Forecasts"&gt;Eclipse World Cup forecasts 2010&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;a href="http://4.bp.blogspot.com/_LdJ_YM5dw4g/TDrcN3qQpII/AAAAAAAABII/nRcJiopxrq8/s1600/WC2010FinalResult.PNG"&gt;&lt;img src="http://4.bp.blogspot.com/_LdJ_YM5dw4g/TDrcN3qQpII/AAAAAAAABII/nRcJiopxrq8/s400/WC2010FinalResult.PNG" border="0" alt="" id="BLOGGER_PHOTO_ID_5492944826369352834" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 237px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Congratulations to Laurent and Florian for finishing second and third! And finally, congratulations to Nathalie who won the Obeo version of the game. A revolution is in process!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: justify; "&gt;Related Links :&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li style="text-align: justify; "&gt;&lt;a href="http://eef-modeling.blogspot.com/2010/06/share-worldcup-experience-with-eclipse.html"&gt;The game&lt;/a&gt; : An RCP application created with &lt;a href="http://www.eclipse.org/modeling/emft/?project=eef"&gt;EEF&lt;/a&gt;.&lt;/li&gt;&lt;li style="text-align: justify; "&gt;&lt;a href="http://jomd.blogspot.com/2010/06/my-2-cents-html-export-for-wc-2010.html"&gt;Acceleo add-in&lt;/a&gt; : An Acceleo code generator to export the results in an HTML page.&lt;/li&gt;&lt;li style="text-align: justify; "&gt;&lt;a href="http://model-driven-blogging.blogspot.com/2010/06/forecasts-comparison-for-world.html"&gt;EMF Compare add-in&lt;/a&gt; : An action to compare your own forecasts with the best ones.&lt;/li&gt;&lt;li style="text-align: justify; "&gt;&lt;a href="http://dev.eclipse.org/blogs/wpiers/2010/07/05/how-to-improve-your-forecasts-using-atl/"&gt;ATL add-in&lt;/a&gt; : An action to help soccer ignorants to improve their forecasts.&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Viva Espana! Congratulations to Netherland and Germany for the podium!&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&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/8684155425640756294-7106751651801167692?l=jomd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jomd.blogspot.com/feeds/7106751651801167692/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8684155425640756294&amp;postID=7106751651801167692' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8684155425640756294/posts/default/7106751651801167692'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8684155425640756294/posts/default/7106751651801167692'/><link rel='alternate' type='text/html' href='http://jomd.blogspot.com/2010/07/spain-are-world-champions-and-fanny.html' title='Spain are world champions and Fanny wins the Eclipse forecasts'/><author><name>Jonathan Musset</name><uri>http://www.blogger.com/profile/14571074456739152583</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_LdJ_YM5dw4g/Sr0Ltzy7QmI/AAAAAAAAAhM/yfITC-ajSPU/S220/Jo-100.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_LdJ_YM5dw4g/TDrfOpFFWqI/AAAAAAAABI4/DIkj6wWaemM/s72-c/Spain.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8684155425640756294.post-2382150277995093390</id><published>2010-07-08T05:49:00.000-07:00</published><updated>2010-07-08T05:54:23.343-07:00</updated><title type='text'>Eclipse WC 2010 Final round - 7 persons can win now</title><content type='html'>&lt;div style="text-align: justify;"&gt;You can win 16 points this week-end for the final round of the world cup forecats. Here is the &lt;a href="http://www.obeo.fr/download/eef/samples/wc2010/results.html"&gt;ranking table&lt;/a&gt;. I will come back with the final results on monday 12.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://2.bp.blogspot.com/_LdJ_YM5dw4g/TDXJuvz0LhI/AAAAAAAABHw/fhViczYCuAo/s1600/Eclipse+Worldcup+Results.png"&gt;&lt;img src="http://2.bp.blogspot.com/_LdJ_YM5dw4g/TDXJuvz0LhI/AAAAAAAABHw/fhViczYCuAo/s320/Eclipse+Worldcup+Results.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5491517125593148946" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 320px; height: 226px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Have fun! Don't forget the Eclipse &lt;a href="http://freddyallilaire.blogspot.com/2010/07/eclipse-democamp-in-nantes-this-week.html"&gt;DemoCamp&lt;/a&gt; in Nantes today!&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/8684155425640756294-2382150277995093390?l=jomd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jomd.blogspot.com/feeds/2382150277995093390/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8684155425640756294&amp;postID=2382150277995093390' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8684155425640756294/posts/default/2382150277995093390'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8684155425640756294/posts/default/2382150277995093390'/><link rel='alternate' type='text/html' href='http://jomd.blogspot.com/2010/07/eclipse-wc-2010-final-round-7-persons.html' title='Eclipse WC 2010 Final round - 7 persons can win now'/><author><name>Jonathan Musset</name><uri>http://www.blogger.com/profile/14571074456739152583</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_LdJ_YM5dw4g/Sr0Ltzy7QmI/AAAAAAAAAhM/yfITC-ajSPU/S220/Jo-100.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_LdJ_YM5dw4g/TDXJuvz0LhI/AAAAAAAABHw/fhViczYCuAo/s72-c/Eclipse+Worldcup+Results.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8684155425640756294.post-8823148691438539223</id><published>2010-06-30T01:10:00.000-07:00</published><updated>2010-06-30T01:26:38.614-07:00</updated><title type='text'>Women on top of the Eclipse World Cup Forecasts</title><content type='html'>&lt;div style="text-align: justify;"&gt;I'm glad to see that a woman is on the top of the &lt;a href="http://www.obeo.fr/download/eef/samples/wc2010/results.html"&gt;Eclipse World Cup forecasts table&lt;/a&gt;. Will Fanny win the competition? &lt;a href="http://www.youtube.com/watch?v=7KEWX3g1oU8"&gt;Who&lt;/a&gt; said that women don't know anything about soccer? Nathalie is 10th. Loredana is 21th. Each day, Lynn is better and better. She's now 25th in the table... There are 70 players in the game and the identified women are on the top of the results table. Well done!&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://1.bp.blogspot.com/_LdJ_YM5dw4g/TCr9n7cdt-I/AAAAAAAABHo/Vr6rJG0Wq7Q/s1600/Eclipse+Worldcup.png"&gt;&lt;img src="http://1.bp.blogspot.com/_LdJ_YM5dw4g/TCr9n7cdt-I/AAAAAAAABHo/Vr6rJG0Wq7Q/s400/Eclipse+Worldcup.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5488477958318176226" style="text-align: justify;display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; cursor: pointer; width: 200px; height: 151px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;It's not too late to &lt;a href="http://wiki.eclipse.org/EEF_Sample_World_Cup_Forecasts"&gt;come&lt;/a&gt; into the game! For the final phase, the score is multiplied by 2! So you keep a chance.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Related Links :&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li style="text-align: justify;"&gt;&lt;a href="http://eef-modeling.blogspot.com/2010/06/share-worldcup-experience-with-eclipse.html"&gt;The game&lt;/a&gt; : An RCP application created with &lt;a href="http://www.eclipse.org/modeling/emft/?project=eef"&gt;EEF&lt;/a&gt;.&lt;/li&gt;&lt;li style="text-align: justify;"&gt;&lt;a href="http://jomd.blogspot.com/2010/06/my-2-cents-html-export-for-wc-2010.html"&gt;Acceleo add-in&lt;/a&gt; : An Acceleo code generator to export the results in an HTML page.&lt;/li&gt;&lt;li style="text-align: justify;"&gt;&lt;a href="http://model-driven-blogging.blogspot.com/2010/06/forecasts-comparison-for-world.html"&gt;EMF Compare add-in&lt;/a&gt; : An action to compare your own forecasts with the best ones.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Don't hesitate to make your own add-in! It's so easy when you use Modeling technologies ;-)&lt;/div&gt;&lt;div style="text-align: justify;"&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/8684155425640756294-8823148691438539223?l=jomd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jomd.blogspot.com/feeds/8823148691438539223/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8684155425640756294&amp;postID=8823148691438539223' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8684155425640756294/posts/default/8823148691438539223'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8684155425640756294/posts/default/8823148691438539223'/><link rel='alternate' type='text/html' href='http://jomd.blogspot.com/2010/06/women-on-top-of-eclipse-world-cup.html' title='Women on top of the Eclipse World Cup Forecasts'/><author><name>Jonathan Musset</name><uri>http://www.blogger.com/profile/14571074456739152583</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_LdJ_YM5dw4g/Sr0Ltzy7QmI/AAAAAAAAAhM/yfITC-ajSPU/S220/Jo-100.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_LdJ_YM5dw4g/TCr9n7cdt-I/AAAAAAAABHo/Vr6rJG0Wq7Q/s72-c/Eclipse+Worldcup.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8684155425640756294.post-805253178549396541</id><published>2010-06-28T05:11:00.000-07:00</published><updated>2010-06-28T05:21:55.353-07:00</updated><title type='text'>Don't forget the Eclipse Modeling webinar</title><content type='html'>&lt;div style="text-align: left;"&gt;Don't forget the &lt;a href="http://www.eclipse.org/helios/heliosinaction.php"&gt;Modeling webinar&lt;/a&gt; today at &lt;a href="http://www.timeanddate.com/worldclock/fixedtime.html?month=6&amp;amp;day=28&amp;amp;year=2010&amp;amp;hour=15&amp;amp;min=30&amp;amp;sec=0&amp;amp;p1=0"&gt;3:30pm UTC&lt;/a&gt;!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;The Eclipse Modeling Project is one of the most active projects within the Eclipse community. &lt;a href="http://ed-merks.blogspot.com/"&gt;Ed Merks&lt;/a&gt; will give a quick overview of the Modeling projects in Helios and &lt;a href="http://zarnekow.blogspot.com/"&gt;Sebastian Zarnekow&lt;/a&gt; will show Xtext. &lt;a href="http://model-driven-blogging.blogspot.com/"&gt;Cedric Brun&lt;/a&gt; will mainly talk about &lt;a href="http://www.eclipse.org/acceleo"&gt;Acceleo&lt;/a&gt; and he will demo &lt;a href="http://www.obeo.fr/eclipse-download.php?lang=en"&gt;what&lt;/a&gt; &lt;a href="http://www.obeo.fr/"&gt;Obeo&lt;/a&gt; has done for this Helios release.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;a href="http://2.bp.blogspot.com/_LdJ_YM5dw4g/TCiSLSGqb1I/AAAAAAAABHg/pbeKUzkeFSc/s1600/Projets.png"&gt;&lt;img src="http://2.bp.blogspot.com/_LdJ_YM5dw4g/TCiSLSGqb1I/AAAAAAAABHg/pbeKUzkeFSc/s400/Projets.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5487796868486950738" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 96px; " /&gt;&lt;/a&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/8684155425640756294-805253178549396541?l=jomd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jomd.blogspot.com/feeds/805253178549396541/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8684155425640756294&amp;postID=805253178549396541' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8684155425640756294/posts/default/805253178549396541'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8684155425640756294/posts/default/805253178549396541'/><link rel='alternate' type='text/html' href='http://jomd.blogspot.com/2010/06/dont-forget-eclipse-modeling-webinar.html' title='Don&apos;t forget the Eclipse Modeling webinar'/><author><name>Jonathan Musset</name><uri>http://www.blogger.com/profile/14571074456739152583</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_LdJ_YM5dw4g/Sr0Ltzy7QmI/AAAAAAAAAhM/yfITC-ajSPU/S220/Jo-100.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_LdJ_YM5dw4g/TCiSLSGqb1I/AAAAAAAABHg/pbeKUzkeFSc/s72-c/Projets.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8684155425640756294.post-4059914599813623072</id><published>2010-06-25T04:59:00.000-07:00</published><updated>2010-06-25T05:27:07.783-07:00</updated><title type='text'>How to migrate from Acceleo 2 to Acceleo 3?</title><content type='html'>&lt;div style="text-align: justify;"&gt;Acceleo 3.0 has just been released and we have a lot of questions about how to migrate from Acceleo 2.x to Acceleo 3.x? Acceleo 3 has some differences with Acceleo 2, especially for the new syntax elements based on the Model-to-text OMG standard.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;The question is : How to create the 3.x &lt;i&gt;'.mtl'&lt;/i&gt; file from the 2.x &lt;i&gt;'.mt'&lt;/i&gt; file?&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;a href="http://4.bp.blogspot.com/_LdJ_YM5dw4g/TCSdeWdwjkI/AAAAAAAABHI/ROOSgdQEbS8/s1600/bMigrated.png"&gt;&lt;img src="http://4.bp.blogspot.com/_LdJ_YM5dw4g/TCSdeWdwjkI/AAAAAAAABHI/ROOSgdQEbS8/s400/bMigrated.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5486683390796140098" style="text-align: justify;display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; cursor: pointer; width: 400px; height: 272px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;The tooling will initialize the migration process... Just right click on the Acceleo 2.x project.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;a href="http://3.bp.blogspot.com/_LdJ_YM5dw4g/TCSdfVnvqdI/AAAAAAAABHQ/EmYBI2pDlbw/s1600/bMenu.png"&gt;&lt;img src="http://3.bp.blogspot.com/_LdJ_YM5dw4g/TCSdfVnvqdI/AAAAAAAABHQ/EmYBI2pDlbw/s400/bMenu.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5486683407749458386" style="text-align: justify;display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; cursor: pointer; width: 400px; height: 272px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;We know that the migration can't be perfect, because the MTL standard is statically typed. Sometimes you need human understanding to provide the right context and get the right equivalence. You will probably have to change the way you organize your code generators. We are confident that Acceleo 2.x users will move easily to Acceleo 3.0.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Don't worry, the Acceleo Team will continue to maintain the 2.x syntax of Acceleo. However, the new major versions and the new features will take place on Eclipse.org.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;There aren't a lot of differences between the old version of acceleo and the new one. It's not so long to migrate from a syntax to another, but you should do that only if you have at least one day free. Note that it can be a little bit more for big code generation modules. Acceleo 3.0 comes with an &lt;a href="http://help.eclipse.org/helios/topic/org.eclipse.acceleo.doc/doc/html/acceleo_equivalence.html"&gt;equivalence documentation&lt;/a&gt;.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;I hope that it will be useful...&lt;/div&gt;&lt;div style="text-align: justify;"&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/8684155425640756294-4059914599813623072?l=jomd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jomd.blogspot.com/feeds/4059914599813623072/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8684155425640756294&amp;postID=4059914599813623072' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8684155425640756294/posts/default/4059914599813623072'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8684155425640756294/posts/default/4059914599813623072'/><link rel='alternate' type='text/html' href='http://jomd.blogspot.com/2010/06/how-to-migrate-from-acceleo-2-to.html' title='How to migrate from Acceleo 2 to Acceleo 3?'/><author><name>Jonathan Musset</name><uri>http://www.blogger.com/profile/14571074456739152583</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_LdJ_YM5dw4g/Sr0Ltzy7QmI/AAAAAAAAAhM/yfITC-ajSPU/S220/Jo-100.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_LdJ_YM5dw4g/TCSdeWdwjkI/AAAAAAAABHI/ROOSgdQEbS8/s72-c/bMigrated.png' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8684155425640756294.post-5385886225363291113</id><published>2010-06-23T14:56:00.000-07:00</published><updated>2010-06-23T15:32:05.313-07:00</updated><title type='text'>Acceleo 3.0 is out and Modeling webinar</title><content type='html'>&lt;div style="text-align: justify;"&gt;I'm really proud to announce that &lt;a href="http://www.eclipse.org/acceleo"&gt;Acceleo 3.0 is out&lt;/a&gt;. It comes with Eclipse 3.6. Acceleo 3.0 combines nice tooling, simple syntax and efficient code generation with all the pragmatism we had with &lt;a href="http://wiki.eclipse.org/Acceleo#From_Acceleo.org_to_Eclipse.org"&gt;the 2.x stream&lt;/a&gt;.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;As you probably know, Eclipse Helios is out! &lt;a href="http://www.obeo.fr/"&gt;Obeo&lt;/a&gt; was greatly involved in this release. Note that there will be an &lt;a href="http://www.eclipse.org/helios/heliosinaction.php"&gt;Eclipse Modeling Webinar&lt;/a&gt; today (June 24 at &lt;a href="http://www.timeanddate.com/worldclock/fixedtime.html?month=6&amp;amp;day=24&amp;amp;year=2010&amp;amp;hour=17&amp;amp;min=00&amp;amp;sec=0&amp;amp;p1=0"&gt;7pm CEST&lt;/a&gt;). I'll talk about the new features we have added this year.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;a href="http://2.bp.blogspot.com/_LdJ_YM5dw4g/TCKGVqhH8-I/AAAAAAAABGg/ovhfbvObvnQ/s1600/ObeoEclipseHelios.PNG"&gt;&lt;img src="http://2.bp.blogspot.com/_LdJ_YM5dw4g/TCKGVqhH8-I/AAAAAAAABGg/ovhfbvObvnQ/s400/ObeoEclipseHelios.PNG" border="0" alt="" id="BLOGGER_PHOTO_ID_5486095002839282658" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 290px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;i&gt;&lt;/i&gt;&lt;blockquote&gt;&lt;i&gt;Wanted : 70 players for the &lt;/i&gt;&lt;a href="http://wiki.eclipse.org/EEF_Sample_World_Cup_Forecasts"&gt;&lt;i&gt;EEF Eclipse World Cup forecasts&lt;/i&gt;&lt;/a&gt;&lt;i&gt;! 3 players more and it's done. I'm really glad to be on the &lt;/i&gt;&lt;a href="http://www.obeo.fr/download/eef/samples/wc2010/results.html"&gt;&lt;i&gt;top 10&lt;/i&gt;&lt;/a&gt;&lt;i&gt;, but the first guy is flying... Don't miss the final phase, the score will be multiplied by 2! It's easy to come into the game. Come at any time! See &lt;/i&gt;&lt;a href="http://eef-modeling.blogspot.com/2010/06/share-worldcup-experience-with-eclipse.html"&gt;&lt;i&gt;the rules&lt;/i&gt;&lt;/a&gt;&lt;i&gt;.&lt;/i&gt;&lt;/blockquote&gt;&lt;i&gt;&lt;/i&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;a href="http://1.bp.blogspot.com/_LdJ_YM5dw4g/TCKKKdBzzaI/AAAAAAAABHA/yJf7fbaUHHI/s1600/Eclipse+Worldcup.png"&gt;&lt;img src="http://1.bp.blogspot.com/_LdJ_YM5dw4g/TCKKKdBzzaI/AAAAAAAABHA/yJf7fbaUHHI/s200/Eclipse+Worldcup.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5486099208286227874" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 200px; height: 151px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Obeo was involved in several projects of the Helios simultaneous release :&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;ul&gt;&lt;li&gt;Acceleo 3.0 is a pragmatic implementation of the OMG Model-to-text specification. It supports the developper with most of the features that can be expected from a top quality code generator IDE: simple syntax, efficient code generation, advanced tooling, features on par with the JDT... Acceleo also has a unique tooling around example-based design of code generators.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;ATL 3.1 is definitively THE model-to-model transformation language in Eclipse.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;EEF is another way to improve the EMF model creation and it aims to improve the EMF.Edit and EMF.Editor JET code generators.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Amalgamation is the project that leads the creation of the modeling bundle, it has an easy one click discover and install wizard.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;EMF Compare 1.1 mainly brings performances enhancements : ID based matching and heuristic based matching have been enhanced by a 10 factor. EMF Compare has now better support for fragmented model during the comparison.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;SCA Tools provides a set of tools for the Service Component Architecture (SCA) set of standards. The 2.1 release brings compatibility with the OASIS specifications. The SCA Designer has been updated to work with Tuscany 2.x...&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;a href="http://3.bp.blogspot.com/_LdJ_YM5dw4g/TCKIM9UTthI/AAAAAAAABGw/fi5AJxwr1N0/s1600/win4_en.jpeg"&gt;&lt;img src="http://3.bp.blogspot.com/_LdJ_YM5dw4g/TCKIM9UTthI/AAAAAAAABGw/fi5AJxwr1N0/s400/win4_en.jpeg" border="0" alt="" id="BLOGGER_PHOTO_ID_5486097052290233874" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 132px; " /&gt;&lt;/a&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/8684155425640756294-5385886225363291113?l=jomd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jomd.blogspot.com/feeds/5385886225363291113/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8684155425640756294&amp;postID=5385886225363291113' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8684155425640756294/posts/default/5385886225363291113'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8684155425640756294/posts/default/5385886225363291113'/><link rel='alternate' type='text/html' href='http://jomd.blogspot.com/2010/06/acceleo-30-is-out-and-modeling-webinar.html' title='Acceleo 3.0 is out and Modeling webinar'/><author><name>Jonathan Musset</name><uri>http://www.blogger.com/profile/14571074456739152583</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_LdJ_YM5dw4g/Sr0Ltzy7QmI/AAAAAAAAAhM/yfITC-ajSPU/S220/Jo-100.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_LdJ_YM5dw4g/TCKGVqhH8-I/AAAAAAAABGg/ovhfbvObvnQ/s72-c/ObeoEclipseHelios.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8684155425640756294.post-5863303265577415319</id><published>2010-06-15T21:30:00.000-07:00</published><updated>2010-06-16T05:35:08.650-07:00</updated><title type='text'>My 2 cents HTML export for the WC 2010 application</title><content type='html'>&lt;div style="text-align: justify;"&gt;I would like to go further with the &lt;a href="http://eef-modeling.blogspot.com/2010/06/share-worldcup-experience-with-eclipse.html"&gt;Eclipse World Cup 2010&lt;/a&gt; application, to help skeptical people to believe in modeling technologies. The EEF team created an RCP 'forecasts' game. Yersterday, someone said that exporting the results in HTML could improve this game. &lt;a href="http://www.obeo.fr/download/eef/samples/wc2010/results.html"&gt;No sooner said than done&lt;/a&gt;.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_LdJ_YM5dw4g/TBiWQ4ZI1EI/AAAAAAAABGY/2PwhZlJRvSI/s1600/00-ResultsHTML.png"&gt;&lt;img src="http://2.bp.blogspot.com/_LdJ_YM5dw4g/TBiWQ4ZI1EI/AAAAAAAABGY/2PwhZlJRvSI/s400/00-ResultsHTML.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5483297763083473986" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 396px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;The RCP application comes with a metamodel project : 'fr.obeo.dsl.worldcupforecast'. &lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Here is a short description of how to make a simple HTML generator with Acceleo, based on this 'forecasts' metamodel.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;It is recommended to use a bottom-up approach when developing generators; Acceleo eases this process by allowing you to initialize the content of a generation module with an HTML example, and offering specific actions to transform these examples (static text) in dynamic OCL expressions.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Let's create the 'results.html' example file which contains an image and a single row line.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://4.bp.blogspot.com/_LdJ_YM5dw4g/TBhUU-5eCHI/AAAAAAAABFg/IXkaO-A9CBc/s1600/01-HTMLPrototype.PNG"&gt;&lt;img src="http://4.bp.blogspot.com/_LdJ_YM5dw4g/TBhUU-5eCHI/AAAAAAAABFg/IXkaO-A9CBc/s400/01-HTMLPrototype.PNG" border="0" alt="" id="BLOGGER_PHOTO_ID_5483225265781737586" style="text-align: justify;display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; cursor: pointer; width: 400px; height: 184px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;We create the code generation project with the new HTML code generation file.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://4.bp.blogspot.com/_LdJ_YM5dw4g/TBhUVIxd5iI/AAAAAAAABFo/CqN9h6Xr0WU/s1600/02-HTMLNewCodeGen.PNG"&gt;&lt;img src="http://4.bp.blogspot.com/_LdJ_YM5dw4g/TBhUVIxd5iI/AAAAAAAABFo/CqN9h6Xr0WU/s400/02-HTMLNewCodeGen.PNG" border="0" alt="" id="BLOGGER_PHOTO_ID_5483225268432528930" style="text-align: justify;display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; cursor: pointer; width: 400px; height: 19px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;The main template is initialized with the example content. It is based on the 'forecasts' metamodel.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://4.bp.blogspot.com/_LdJ_YM5dw4g/TBhUVSqMigI/AAAAAAAABFw/i4iBAJ6uS-8/s1600/03-HTMLTemplateIni.PNG"&gt;&lt;img src="http://4.bp.blogspot.com/_LdJ_YM5dw4g/TBhUVSqMigI/AAAAAAAABFw/i4iBAJ6uS-8/s400/03-HTMLTemplateIni.PNG" border="0" alt="" id="BLOGGER_PHOTO_ID_5483225271086385666" style="text-align: justify;display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; cursor: pointer; width: 400px; height: 183px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;We would like to create a row line for each player, starting from the best to the least score. Thus, we create a 'for' statement to iterate over the players.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://3.bp.blogspot.com/_LdJ_YM5dw4g/TBhUVkiK8HI/AAAAAAAABF4/vqcuqbdpICI/s1600/04-HTMLTemplateEdit.PNG"&gt;&lt;img src="http://3.bp.blogspot.com/_LdJ_YM5dw4g/TBhUVkiK8HI/AAAAAAAABF4/vqcuqbdpICI/s400/04-HTMLTemplateEdit.PNG" border="0" alt="" id="BLOGGER_PHOTO_ID_5483225275884564594" style="text-align: justify;display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; cursor: pointer; width: 400px; height: 224px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Finally, we run the coge generator on the forecasts model. It's done!&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;a href="http://4.bp.blogspot.com/_LdJ_YM5dw4g/TBhWErmfBfI/AAAAAAAABGA/CCdytAi21RE/s1600/05-HTMLRunAs.png"&gt;&lt;img src="http://4.bp.blogspot.com/_LdJ_YM5dw4g/TBhWErmfBfI/AAAAAAAABGA/CCdytAi21RE/s400/05-HTMLRunAs.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5483227184747185650" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 45px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Note that you can directly access the online model in your launcher.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://2.bp.blogspot.com/_LdJ_YM5dw4g/TBiL8clOaUI/AAAAAAAABGQ/sLzm-lOm9oc/s1600/06-HTMLJavaClass.png"&gt;&lt;img src="http://2.bp.blogspot.com/_LdJ_YM5dw4g/TBiL8clOaUI/AAAAAAAABGQ/sLzm-lOm9oc/s400/06-HTMLJavaClass.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5483286416904317250" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; 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;Here are the files : the &lt;a href="http://www.obeo.fr/download/eef/samples/wc2010/results.html"&gt;results page&lt;/a&gt;, the &lt;a href="http://www.obeo.fr/download/eef/samples/wc2010/WC2010-gen.zip"&gt;Acceleo project&lt;/a&gt;, the &lt;a href="http://www.obeo.fr/download/eef/samples/wc2010/html.mtl"&gt;MTL file&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 class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8684155425640756294-5863303265577415319?l=jomd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jomd.blogspot.com/feeds/5863303265577415319/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8684155425640756294&amp;postID=5863303265577415319' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8684155425640756294/posts/default/5863303265577415319'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8684155425640756294/posts/default/5863303265577415319'/><link rel='alternate' type='text/html' href='http://jomd.blogspot.com/2010/06/my-2-cents-html-export-for-wc-2010.html' title='My 2 cents HTML export for the WC 2010 application'/><author><name>Jonathan Musset</name><uri>http://www.blogger.com/profile/14571074456739152583</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_LdJ_YM5dw4g/Sr0Ltzy7QmI/AAAAAAAAAhM/yfITC-ajSPU/S220/Jo-100.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_LdJ_YM5dw4g/TBiWQ4ZI1EI/AAAAAAAABGY/2PwhZlJRvSI/s72-c/00-ResultsHTML.png' height='72' width='72'/><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8684155425640756294.post-6814189066891270001</id><published>2010-06-11T23:42:00.001-07:00</published><updated>2010-06-11T23:55:10.706-07:00</updated><title type='text'>WC 2010 powered by EEF and Acceleo - Results and Rating</title><content type='html'>&lt;div style="text-align: justify;"&gt;The first day is complete and results are online. Get the results with the menu "World Cup Results and Rating".&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://2.bp.blogspot.com/_LdJ_YM5dw4g/TBMsfUlrhII/AAAAAAAABE0/CtQz8k21sK8/s1600/WCForecastsMenu.png"&gt;&lt;img src="http://2.bp.blogspot.com/_LdJ_YM5dw4g/TBMsfUlrhII/AAAAAAAABE0/CtQz8k21sK8/s400/WCForecastsMenu.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5481774088054342786" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 367px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I'm glad to be in the first part of the Rating view ;-)&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;This post is also a reminder. &lt;a href="http://eef-modeling.blogspot.com/2010/06/share-worldcup-experience-with-eclipse.html"&gt;Goulwen&lt;/a&gt; validates the 'forecast of the day' at 6am UTC. It's easy to come into the game. Come at any time! See &lt;a href="http://eef-modeling.blogspot.com/2010/06/share-worldcup-experience-with-eclipse.html"&gt;the rules&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://4.bp.blogspot.com/_LdJ_YM5dw4g/TBMsf5CHdlI/AAAAAAAABE8/7mjafXxcFIk/s1600/Scores.png"&gt;&lt;img src="http://4.bp.blogspot.com/_LdJ_YM5dw4g/TBMsf5CHdlI/AAAAAAAABE8/7mjafXxcFIk/s400/Scores.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5481774097837291090" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 345px; height: 400px; " /&gt;&lt;/a&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/8684155425640756294-6814189066891270001?l=jomd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jomd.blogspot.com/feeds/6814189066891270001/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8684155425640756294&amp;postID=6814189066891270001' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8684155425640756294/posts/default/6814189066891270001'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8684155425640756294/posts/default/6814189066891270001'/><link rel='alternate' type='text/html' href='http://jomd.blogspot.com/2010/06/wc-2010-powered-by-eef-and-acceleo.html' title='WC 2010 powered by EEF and Acceleo - Results and Rating'/><author><name>Jonathan Musset</name><uri>http://www.blogger.com/profile/14571074456739152583</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_LdJ_YM5dw4g/Sr0Ltzy7QmI/AAAAAAAAAhM/yfITC-ajSPU/S220/Jo-100.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_LdJ_YM5dw4g/TBMsfUlrhII/AAAAAAAABE0/CtQz8k21sK8/s72-c/WCForecastsMenu.png' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8684155425640756294.post-8097793610062733232</id><published>2010-06-11T00:58:00.000-07:00</published><updated>2010-06-11T01:37:10.231-07:00</updated><title type='text'>Last Call : Now boarding for the Eclipse World Cup 2010!</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_LdJ_YM5dw4g/TBHzfawafYI/AAAAAAAABEs/0bAJ0xtfRYQ/s1600/Eclipse+Worldcup.png"&gt;&lt;img style="text-align: justify;float: right; margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 10px; cursor: pointer; width: 160px; height: 121px; " src="http://3.bp.blogspot.com/_LdJ_YM5dw4g/TBHzfawafYI/AAAAAAAABEs/0bAJ0xtfRYQ/s400/Eclipse+Worldcup.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5481429942570483074" /&gt;&lt;/a&gt;&lt;div style="text-align: justify;"&gt;&lt;i&gt;A bit of sweetness during the final Helios release build...&lt;/i&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Want to play to the Eclipse World Cup 2010? Want to believe in modeling technologies?&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Download it!&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:Verdana, Arial, sans-serif;"&gt;&lt;span class="Apple-style-span" style="line-height: 17px;"&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 51); "&gt;&lt;a href="http://www.obeo.fr/download/wc/win32.x86.zip" style="color: rgb(68, 136, 136); "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;windows&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; &lt;/span&gt;&lt;a href="http://www.obeo.fr/download/wc/win32.x86_64.zip" style="color: rgb(68, 136, 136); "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;windows64&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; &lt;/span&gt;&lt;a href="http://www.obeo.fr/download/wc/linux.gtk.x86.tar.gz" style="color: rgb(68, 136, 136); "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;linux&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; &lt;/span&gt;&lt;a href="http://www.obeo.fr/download/wc/linux.gtk.x68_64.tar.gz" style="color: rgb(68, 136, 136); "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;linux64&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; &lt;/span&gt;&lt;a href="http://www.obeo.fr/download/wc/macosx.cocoa.x86.zip" style="color: rgb(68, 136, 136); "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;macosx&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; &lt;/span&gt;&lt;a href="http://www.obeo.fr/download/wc/macosx.cocoa.x86_64.zip" style="color: rgb(68, 136, 136); "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;macosx64&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Goulwen posted the &lt;a href="http://eef-modeling.blogspot.com/2010/06/share-worldcup-experience-with-eclipse.html"&gt;rules&lt;/a&gt; yersterday.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Exceptionally today (june 11th), you can play until the beginning of the first match!&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://4.bp.blogspot.com/_LdJ_YM5dw4g/TBHvyy-9LkI/AAAAAAAABEc/o7h1w21pFRA/s1600/Ratings.PNG"&gt;&lt;img src="http://4.bp.blogspot.com/_LdJ_YM5dw4g/TBHvyy-9LkI/AAAAAAAABEc/o7h1w21pFRA/s400/Ratings.PNG" border="0" alt="" id="BLOGGER_PHOTO_ID_5481425877444931138" style="text-align: justify;display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; cursor: pointer; width: 400px; height: 321px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&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/8684155425640756294-8097793610062733232?l=jomd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jomd.blogspot.com/feeds/8097793610062733232/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8684155425640756294&amp;postID=8097793610062733232' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8684155425640756294/posts/default/8097793610062733232'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8684155425640756294/posts/default/8097793610062733232'/><link rel='alternate' type='text/html' href='http://jomd.blogspot.com/2010/06/last-call-now-boarding-for-eclipse.html' title='Last Call : Now boarding for the Eclipse World Cup 2010!'/><author><name>Jonathan Musset</name><uri>http://www.blogger.com/profile/14571074456739152583</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_LdJ_YM5dw4g/Sr0Ltzy7QmI/AAAAAAAAAhM/yfITC-ajSPU/S220/Jo-100.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_LdJ_YM5dw4g/TBHzfawafYI/AAAAAAAABEs/0bAJ0xtfRYQ/s72-c/Eclipse+Worldcup.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8684155425640756294.post-8316339903226364769</id><published>2010-06-08T12:46:00.000-07:00</published><updated>2010-06-08T13:26:23.147-07:00</updated><title type='text'>Two billion years of software evolution</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;i&gt;The Acceleo planet, the Modeling solar system, the Eclipse galaxy, and the software development universe... &lt;/i&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;The only conclusion that could be derived from a universe where everything moves away from everything else is that the universe constantly expands.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: justify;"&gt;Today, more than 400 000 objects roam the solar system. The stars, planets and galaxies are in constant motion. The gravitational force acting on these celestial bodies, attracting them to each other, leads to collisions. 65 millions years ago, the impact of an asteroid on Earth has caused mass extinction of living species such as dinosaurs. In two billion years, scientists predict that our galaxy will be struck by Andromeda to form a single galaxy. Related to the origins and evolution of the universe, cosmic shocks created in the past affects the present and shape the future. The Dinosaur Extinction has probably cleared the way for us. Thus, we can also consider a collision as the beginning of something else...&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;a href="http://4.bp.blogspot.com/_LdJ_YM5dw4g/TA6jXWASDsI/AAAAAAAABCk/DN-fXjKtSS4/s1600/planet-impact.jpg"&gt;&lt;img src="http://4.bp.blogspot.com/_LdJ_YM5dw4g/TA6jXWASDsI/AAAAAAAABCk/DN-fXjKtSS4/s400/planet-impact.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5480497417995554498" style="text-align: justify;display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; cursor: pointer; width: 300px; height: 240px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Image courtesy of NASA/JPL-Caltech License&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;I posted this because it sounds like Eclipse plug-ins development and software evolution... Sometimes, you want to blow everything up, to go further... But, it's not easy to do...&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;The JDT has been re-written several times in ten years, isn't it? I think that the Eclipse XText version is really more cool than the old one. E4 will probably be a revolutionary development platform... What an exciting challenge to rewrite everything without losing the best of what you have already done? We've tried to do our best for the Acceleo MTL mutation. Now, thanks to the team, the new Acceleo version seems to be on the road... Thanks for all the positive feedbacks we have received about the collision between the Acceleo planet and the MTL celestial object. Where does MTL come from? the OMG galaxy!&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;I can't imagine how Eclipse could be in two billion years... It would be an ordered bloody mess, like the universe ;-)&lt;/div&gt;&lt;div style="text-align: justify;"&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/8684155425640756294-8316339903226364769?l=jomd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jomd.blogspot.com/feeds/8316339903226364769/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8684155425640756294&amp;postID=8316339903226364769' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8684155425640756294/posts/default/8316339903226364769'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8684155425640756294/posts/default/8316339903226364769'/><link rel='alternate' type='text/html' href='http://jomd.blogspot.com/2010/06/two-billion-years-of-software-evolution.html' title='Two billion years of software evolution'/><author><name>Jonathan Musset</name><uri>http://www.blogger.com/profile/14571074456739152583</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_LdJ_YM5dw4g/Sr0Ltzy7QmI/AAAAAAAAAhM/yfITC-ajSPU/S220/Jo-100.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_LdJ_YM5dw4g/TA6jXWASDsI/AAAAAAAABCk/DN-fXjKtSS4/s72-c/planet-impact.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8684155425640756294.post-3870257568395569452</id><published>2010-06-07T08:11:00.001-07:00</published><updated>2010-06-07T08:39:18.249-07:00</updated><title type='text'>How an Android file could become a code generation template in few clicks?</title><content type='html'>&lt;div style="text-align: justify;"&gt;Let's take a simple Android metamodel with different kinds of Widgets, like Text, Spinner, Button...&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Acceleo provides a way to customize quickly your Android code generator, and manage the different code generation alternatives. With the For/If menu item, you can apply a specific treatment to each kind of Widgets.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;In the Java file which contains Android widgets declarations, select them and then right-click and run: Source &gt; As For/If (Alt+Shift+F).&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;a href="http://1.bp.blogspot.com/_LdJ_YM5dw4g/TA0N5eFIPJI/AAAAAAAABBs/5cye-MZOmZk/s1600/android_As_For_If.png"&gt;&lt;img src="http://1.bp.blogspot.com/_LdJ_YM5dw4g/TA0N5eFIPJI/AAAAAAAABBs/5cye-MZOmZk/s400/android_As_For_If.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5480051602558041234" style="text-align: justify;display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; cursor: pointer; width: 400px; height: 188px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Each kind of Widget is isolated as a new code generation alternative.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;a href="http://1.bp.blogspot.com/_LdJ_YM5dw4g/TA0N5vufaGI/AAAAAAAABB0/oRLcTfiswRE/s1600/android_As_For_If_2.png"&gt;&lt;img src="http://1.bp.blogspot.com/_LdJ_YM5dw4g/TA0N5vufaGI/AAAAAAAABB0/oRLcTfiswRE/s400/android_As_For_If_2.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5480051607294928994" style="text-align: justify;display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; cursor: pointer; width: 400px; height: 237px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Then fill the appropriate kind of Widget in each condition (This is the link between the metamodel concept and the textual alternative to produce for this concept).&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;a href="http://2.bp.blogspot.com/_LdJ_YM5dw4g/TA0N6FZiEtI/AAAAAAAABB8/ObLmedYaBow/s1600/android_As_For_If_3.png"&gt;&lt;img src="http://2.bp.blogspot.com/_LdJ_YM5dw4g/TA0N6FZiEtI/AAAAAAAABB8/ObLmedYaBow/s400/android_As_For_If_3.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5480051613112603346" style="text-align: justify;display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; cursor: pointer; width: 400px; height: 246px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Leave just one TextField declaration and delete the other ones. Complete it by changing the static name of Widgets with a dynamic Acceleo expression by using the Quick replacement tool.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;a href="http://3.bp.blogspot.com/_LdJ_YM5dw4g/TA0N6UB-alI/AAAAAAAABCE/3UtTw10-8ZQ/s1600/android_As_For_If_4.png"&gt;&lt;img src="http://3.bp.blogspot.com/_LdJ_YM5dw4g/TA0N6UB-alI/AAAAAAAABCE/3UtTw10-8ZQ/s400/android_As_For_If_4.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5480051617040329298" style="text-align: justify;display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; cursor: pointer; width: 400px; height: 178px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Repeat for the other files. The Alt+Shift+F feature is more useful the second time you use it because it tries to fill automatically the alternative condition.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;a href="http://2.bp.blogspot.com/_LdJ_YM5dw4g/TA0N6l90WDI/AAAAAAAABCM/n0GSzrHqW_k/s1600/android_As_For_If_5.png"&gt;&lt;img src="http://2.bp.blogspot.com/_LdJ_YM5dw4g/TA0N6l90WDI/AAAAAAAABCM/n0GSzrHqW_k/s400/android_As_For_If_5.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5480051621854730290" style="text-align: justify;display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; cursor: pointer; width: 400px; height: 376px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Acceleo 3.0 comes with an Android Tutorial. This is meant to give beginners a tutorial to get them started with defining their own code generators... and advanced users a way to discover some of Acceleo 3.0 features.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;I have shown this feature at the &lt;a href="http://www.obeo.fr/videos/acceleo-eclipse/eclipse-modeling-runaway-acceleo.htm"&gt;Eclipse modeling runaway 2010&lt;/a&gt; and some of you asked me to have more details...&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;I hope it will be useful for you.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&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/8684155425640756294-3870257568395569452?l=jomd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jomd.blogspot.com/feeds/3870257568395569452/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8684155425640756294&amp;postID=3870257568395569452' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8684155425640756294/posts/default/3870257568395569452'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8684155425640756294/posts/default/3870257568395569452'/><link rel='alternate' type='text/html' href='http://jomd.blogspot.com/2010/06/how-android-file-could-become-code.html' title='How an Android file could become a code generation template in few clicks?'/><author><name>Jonathan Musset</name><uri>http://www.blogger.com/profile/14571074456739152583</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_LdJ_YM5dw4g/Sr0Ltzy7QmI/AAAAAAAAAhM/yfITC-ajSPU/S220/Jo-100.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_LdJ_YM5dw4g/TA0N5eFIPJI/AAAAAAAABBs/5cye-MZOmZk/s72-c/android_As_For_If.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8684155425640756294.post-6294482245382173379</id><published>2010-06-02T04:45:00.000-07:00</published><updated>2010-06-02T06:25:53.335-07:00</updated><title type='text'>1-minute fully-functional example for ATL and Acceleo</title><content type='html'>&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 onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_LdJ_YM5dw4g/TAZH_g8LVYI/AAAAAAAAA_0/QcRdW7UjTRY/s1600/Logos.png"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;img style="text-align: left;float: right; margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 10px; cursor: pointer; width: 140px; height: 83px; " src="http://2.bp.blogspot.com/_LdJ_YM5dw4g/TAZH_g8LVYI/AAAAAAAAA_0/QcRdW7UjTRY/s200/Logos.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5478145153242453378" /&gt;&lt;/a&gt;&lt;div&gt;&lt;div style="text-align: justify;"&gt;&lt;div style="text-align: left;"&gt;&lt;div&gt;&lt;div style="text-align: justify;"&gt;This message will help you to install and use ATL and Acceleo in 2 minutes or if you need to make a quick demo for your client or for your boss... Don't waste your time! Use the Modeling discovery UI of the Amalgamation project.&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;div style="text-align: justify;"&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div style="text-align: justify;"&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Amalgamation Note :&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;The Eclipse Modeling Package is a base and sound platform one can rely on for development tasks leveraging the modeling technologies. The Package is focusing on EMF and its complementary frameworks and tools : we call that the "base platform". That said the modeling community is way more diverse than that and provides complete IDE's for dedicated langages. Those are provided through the discovery UI.&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div style="text-align: justify;"&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Here is the easiest way to install and try the modeling technologies like ATL and Acceleo, by downloading the Amalgamation bundle :&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;ul&gt;&lt;li style="text-align: left;"&gt;Download the last &lt;a href="http://www.eclipse.org/epp/download.php"&gt;EPP modeling bundle&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: left;"&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-style: normal; "&gt;&lt;a href="http://2.bp.blogspot.com/_LdJ_YM5dw4g/TAZKNv-rhBI/AAAAAAAABAM/soWkk32naRM/s1600/ModelingBundleVersion.PNG"&gt;&lt;img src="http://2.bp.blogspot.com/_LdJ_YM5dw4g/TAZKNv-rhBI/AAAAAAAABAM/soWkk32naRM/s320/ModelingBundleVersion.PNG" border="0" alt="" id="BLOGGER_PHOTO_ID_5478147596820907026" style="text-align: left; display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; cursor: pointer; width: 320px; height: 131px; " /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;The final release (June 23) will be available at http://www.eclipse.org/downloads&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;ul&gt;&lt;li style="text-align: left;"&gt;Use the modeling discovery button to install ATL and Acceleo&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&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/_LdJ_YM5dw4g/TAZJ6FenBwI/AAAAAAAAA_8/c2vG_cGns_4/s320/ModelingIcon.PNG" border="0" alt="" id="BLOGGER_PHOTO_ID_5478147258994591490" style="text-align: left;display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; cursor: pointer; width: 54px; height: 49px; " /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&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;a href="http://4.bp.blogspot.com/_LdJ_YM5dw4g/TAZMK3fcBTI/AAAAAAAABA0/o-R4AWITaM0/s1600/Discovery.PNG"&gt;&lt;img src="http://4.bp.blogspot.com/_LdJ_YM5dw4g/TAZMK3fcBTI/AAAAAAAABA0/o-R4AWITaM0/s400/Discovery.PNG" border="0" alt="" id="BLOGGER_PHOTO_ID_5478149746320999730" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 366px; height: 400px; " /&gt;&lt;/a&gt;&lt;/span&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 style="text-align: left;"&gt;&lt;ul&gt;&lt;li&gt;Examples are available for these technologies in the right-click menus &lt;i&gt;New &gt; Examples &gt; Acceleo Plug-ins&lt;/i&gt; and &lt;i&gt;New &gt; Examples &gt; ATL&lt;/i&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;a href="http://1.bp.blogspot.com/_LdJ_YM5dw4g/TAZPgb_PiGI/AAAAAAAABBM/LT7YyAVVngA/s1600/NewExamples.PNG"&gt;&lt;img src="http://1.bp.blogspot.com/_LdJ_YM5dw4g/TAZPgb_PiGI/AAAAAAAABBM/LT7YyAVVngA/s400/NewExamples.PNG" border="0" alt="" id="BLOGGER_PHOTO_ID_5478153415430211682" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 380px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;ul&gt;&lt;li&gt;Now, your workspace contains the new examples...&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;a href="http://1.bp.blogspot.com/_LdJ_YM5dw4g/TAZPgc2rv0I/AAAAAAAABBU/8Pu-BLJi4Ig/s1600/Examples.PNG"&gt;&lt;img src="http://1.bp.blogspot.com/_LdJ_YM5dw4g/TAZPgc2rv0I/AAAAAAAABBU/8Pu-BLJi4Ig/s400/Examples.PNG" border="0" alt="" id="BLOGGER_PHOTO_ID_5478153415662747458" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 332px; height: 400px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I will come back with some little information about the interoperability between these 2 technologies...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Coming soon...&lt;/div&gt;&lt;div style="text-align: left;"&gt; &lt;/div&gt;&lt;div style="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/8684155425640756294-6294482245382173379?l=jomd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jomd.blogspot.com/feeds/6294482245382173379/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8684155425640756294&amp;postID=6294482245382173379' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8684155425640756294/posts/default/6294482245382173379'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8684155425640756294/posts/default/6294482245382173379'/><link rel='alternate' type='text/html' href='http://jomd.blogspot.com/2010/06/1-minute-fully-functional-example-for.html' title='1-minute fully-functional example for ATL and Acceleo'/><author><name>Jonathan Musset</name><uri>http://www.blogger.com/profile/14571074456739152583</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_LdJ_YM5dw4g/Sr0Ltzy7QmI/AAAAAAAAAhM/yfITC-ajSPU/S220/Jo-100.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_LdJ_YM5dw4g/TAZH_g8LVYI/AAAAAAAAA_0/QcRdW7UjTRY/s72-c/Logos.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8684155425640756294.post-1230884572978590477</id><published>2010-05-31T09:22:00.001-07:00</published><updated>2010-05-31T09:31:59.552-07:00</updated><title type='text'>The Acceleo editor provides refactoring actions and quick fixes</title><content type='html'>&lt;div style="text-align: justify;"&gt;You can use the usual shortcut ALT+SHIFT+R to rename either modules, templates, queries, variables... in a coherent manner. This action can also be accessed from the menu Refactor &gt; Rename. The interface will allow you to preview the changes before validating them.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_LdJ_YM5dw4g/TAPjhn_haPI/AAAAAAAAA_E/DBhPTLUYHY0/s1600/Acceleo-rename_preview.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 269px;" src="http://1.bp.blogspot.com/_LdJ_YM5dw4g/TAPjhn_haPI/AAAAAAAAA_E/DBhPTLUYHY0/s400/Acceleo-rename_preview.png" alt="" id="BLOGGER_PHOTO_ID_5477471738623256818" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8684155425640756294-1230884572978590477?l=jomd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jomd.blogspot.com/feeds/1230884572978590477/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8684155425640756294&amp;postID=1230884572978590477' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8684155425640756294/posts/default/1230884572978590477'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8684155425640756294/posts/default/1230884572978590477'/><link rel='alternate' type='text/html' href='http://jomd.blogspot.com/2010/05/acceleo-editor-provides-refactoring.html' title='The Acceleo editor provides refactoring actions and quick fixes'/><author><name>Jonathan Musset</name><uri>http://www.blogger.com/profile/14571074456739152583</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_LdJ_YM5dw4g/Sr0Ltzy7QmI/AAAAAAAAAhM/yfITC-ajSPU/S220/Jo-100.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_LdJ_YM5dw4g/TAPjhn_haPI/AAAAAAAAA_E/DBhPTLUYHY0/s72-c/Acceleo-rename_preview.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8684155425640756294.post-6271073177624341823</id><published>2010-05-28T01:29:00.000-07:00</published><updated>2010-05-28T01:59:06.420-07:00</updated><title type='text'>Code Generation Patterns</title><content type='html'>&lt;div style="text-align: justify;"&gt;The Acceleo IDE provides an extension point to help you to define your own code generation pattern proposals.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Here is an example available in Acceleo 3.0 &lt;i&gt;(use the same way to define your own proposal)&lt;/i&gt; :&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://3.bp.blogspot.com/_LdJ_YM5dw4g/S_-FMOcxpRI/AAAAAAAAA-M/JZe0Qjy1zNU/s1600/PatternsExtension.PNG"&gt;&lt;img src="http://3.bp.blogspot.com/_LdJ_YM5dw4g/S_-FMOcxpRI/AAAAAAAAA-M/JZe0Qjy1zNU/s400/PatternsExtension.PNG" border="0" alt="" id="BLOGGER_PHOTO_ID_5476242116989527314" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 28px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;The extension point is org.eclipse.acceleo.ide.ui.proposal&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;The Java class implements "org.eclipse.acceleo.ide.ui.views.proposals.patterns.IAcceleoPatternProposal"&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Generation patterns have been introduced in acceleo because we noticed that something that happens really often when developing code generators is the need to implement some behavior on an interface and all or part of its subtypes.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;For example, let's imagine you are implementing a java generator from UML. What you want is to have a template called javaName which will generate the name of any classifier, with some default behavior and some specific behavior on classes and interfaces.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;This is where the Generation Patterns view comes into play:&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;ul&gt;&lt;li&gt;Locate the cursor in the template, at the position where you want to insert your javaName templates&lt;/li&gt;&lt;li&gt;In the Generation patterns view, select "[template] for all selected types" in the top part&lt;/li&gt;&lt;li&gt;Select the types for which you want to create javaName templates for&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Note the bottom part of the Generation Patterns views presents a hierarchical view of the metamodel you are using. Each node represents a type of the metamodel and contains all of its subtypes. So, one type can appear several times in this view, one time for each of its super-classes or super-interfaces. When you select a node (by checking the combo-box before it), all its descendants are also selected by default, but you can uncheck those you don't need.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_LdJ_YM5dw4g/S_-Ck1fTT0I/AAAAAAAAA9k/z043UB2YkFY/s1600/acceleo_generation_patterns2.png"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); -webkit-text-decorations-in-effect: none; "&gt;&lt;/span&gt;&lt;/a&gt;&lt;a href="http://2.bp.blogspot.com/_LdJ_YM5dw4g/S_-CkjyeKfI/AAAAAAAAA9c/sZLbBXmFQdg/s1600/acceleo_generation_patterns1.png"&gt;&lt;img src="http://2.bp.blogspot.com/_LdJ_YM5dw4g/S_-CkjyeKfI/AAAAAAAAA9c/sZLbBXmFQdg/s400/acceleo_generation_patterns1.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5476239236499646962" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 238px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_LdJ_YM5dw4g/S_-Ck1fTT0I/AAAAAAAAA9k/z043UB2YkFY/s1600/acceleo_generation_patterns2.png"&gt;&lt;br /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Once you have selected the types you need, go back to the editor and activate the completion by hitting Ctrl+Space. The first choice should be "[template] for all selected types", select it.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;a href="http://4.bp.blogspot.com/_LdJ_YM5dw4g/S_-Ck1fTT0I/AAAAAAAAA9k/z043UB2YkFY/s1600/acceleo_generation_patterns2.png"&gt;&lt;img src="http://4.bp.blogspot.com/_LdJ_YM5dw4g/S_-Ck1fTT0I/AAAAAAAAA9k/z043UB2YkFY/s400/acceleo_generation_patterns2.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5476239241251082050" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 216px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;New templates are then inserted into you Acceleo module. They are called "name" by default but you can immediately rename them by just entering the name you want. All templates will be renamed simultaneously.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;a href="http://1.bp.blogspot.com/_LdJ_YM5dw4g/S_-ClHU_WtI/AAAAAAAAA9s/IBY2WjW4jdk/s1600/acceleo_generation_patterns3.png"&gt;&lt;img src="http://1.bp.blogspot.com/_LdJ_YM5dw4g/S_-ClHU_WtI/AAAAAAAAA9s/IBY2WjW4jdk/s400/acceleo_generation_patterns3.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5476239246039669458" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 329px; height: 400px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Here, Acceleo has done his job, now it's time for you to do yours: implement these newly created templates!&lt;/div&gt;&lt;div style="text-align: justify;"&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/8684155425640756294-6271073177624341823?l=jomd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jomd.blogspot.com/feeds/6271073177624341823/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8684155425640756294&amp;postID=6271073177624341823' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8684155425640756294/posts/default/6271073177624341823'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8684155425640756294/posts/default/6271073177624341823'/><link rel='alternate' type='text/html' href='http://jomd.blogspot.com/2010/05/code-generation-patterns.html' title='Code Generation Patterns'/><author><name>Jonathan Musset</name><uri>http://www.blogger.com/profile/14571074456739152583</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_LdJ_YM5dw4g/Sr0Ltzy7QmI/AAAAAAAAAhM/yfITC-ajSPU/S220/Jo-100.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_LdJ_YM5dw4g/S_-FMOcxpRI/AAAAAAAAA-M/JZe0Qjy1zNU/s72-c/PatternsExtension.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8684155425640756294.post-8995337881466836152</id><published>2010-05-27T01:11:00.000-07:00</published><updated>2010-05-27T01:34:23.486-07:00</updated><title type='text'>The Overrides View - Customize an existing code generator</title><content type='html'>&lt;div style="text-align: justify;"&gt;Thank you for following me on my "New Acceleo features" week ;-)&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;The Overrides view shows every Acceleo element that is accessible in your workbench (no matter your current project's dependencies). You can select one or several elements (use the checkboxes) and override them.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;a href="http://1.bp.blogspot.com/_LdJ_YM5dw4g/S_4sMkPmp7I/AAAAAAAAA9U/KzFo_75b3NY/s1600/acceleo_overrides_view1.png"&gt;&lt;img src="http://1.bp.blogspot.com/_LdJ_YM5dw4g/S_4sMkPmp7I/AAAAAAAAA9U/KzFo_75b3NY/s400/acceleo_overrides_view1.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5475862791328278450" style="text-align: justify;display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; cursor: pointer; width: 305px; height: 74px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Note: If the meaning of "override" is not clear, you may want to refer to &lt;a href="http://www.omg.org/spec/MOFM2T/1.0/"&gt;the official MTL Specification&lt;/a&gt;.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Templates displayed in this view can be anywhere in your workspace or in your plug-ins.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;So, this view can be used for:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li style="text-align: justify;"&gt;Selecting templates you want to override (which is its main purpose)&lt;/li&gt;&lt;li style="text-align: justify;"&gt;Navigating to templates in your plug-ins to see their implementation without having to explicitly import their plug-in(s) in your workspace.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;To override one or several existing templates, just select them in this view by checking their checkboxes. Then, edit the module in which you will override the templates, place the cursor where you want to insert the overriding templates, and hit Ctrl + Space.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;a href="http://3.bp.blogspot.com/_LdJ_YM5dw4g/S_4sLwpLzjI/AAAAAAAAA9E/JTNTOkHaKj8/s1600/acceleo_overrides_view2.png"&gt;&lt;img src="http://3.bp.blogspot.com/_LdJ_YM5dw4g/S_4sLwpLzjI/AAAAAAAAA9E/JTNTOkHaKj8/s400/acceleo_overrides_view2.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5475862777476927026" style="text-align: justify;display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; cursor: pointer; width: 400px; height: 131px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Select the first choice ("Selected Overrides") and hit Return. The overriding templates are then created. Note that by default, their implementation is initialized with their original implementation.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;a href="http://2.bp.blogspot.com/_LdJ_YM5dw4g/S_4sMSeQzZI/AAAAAAAAA9M/8-aYmp7kbNE/s1600/acceleo_overrides_view3.png"&gt;&lt;img src="http://2.bp.blogspot.com/_LdJ_YM5dw4g/S_4sMSeQzZI/AAAAAAAAA9M/8-aYmp7kbNE/s400/acceleo_overrides_view3.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5475862786557922706" style="text-align: justify;display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; cursor: pointer; width: 400px; height: 268px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Note: A marker indicates whether a given project is accessible from yours. If this is the case, a green mark indicates everything is fine. Otherwise, a red marker indicates that you need to import the project in yours to be able to override a template it contains. For example, in the screenshot below, org.eclipse.acceleo.module.other.sample needs be imported in your current project before you can successfully override one of its templates.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;a href="http://1.bp.blogspot.com/_LdJ_YM5dw4g/S_4sMkPmp7I/AAAAAAAAA9U/KzFo_75b3NY/s1600/acceleo_overrides_view1.png"&gt;&lt;img src="http://1.bp.blogspot.com/_LdJ_YM5dw4g/S_4sMkPmp7I/AAAAAAAAA9U/KzFo_75b3NY/s400/acceleo_overrides_view1.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5475862791328278450" style="text-align: justify;display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; cursor: pointer; width: 305px; height: 74px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Nevertheless, you can declare the overriding, it will just not compile while you have not imported the relevant project (which is done in the MANIFEST.MF file of your Acceleo project).&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&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/8684155425640756294-8995337881466836152?l=jomd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jomd.blogspot.com/feeds/8995337881466836152/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8684155425640756294&amp;postID=8995337881466836152' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8684155425640756294/posts/default/8995337881466836152'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8684155425640756294/posts/default/8995337881466836152'/><link rel='alternate' type='text/html' href='http://jomd.blogspot.com/2010/05/overrides-view-customize-existing-code.html' title='The Overrides View - Customize an existing code generator'/><author><name>Jonathan Musset</name><uri>http://www.blogger.com/profile/14571074456739152583</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_LdJ_YM5dw4g/Sr0Ltzy7QmI/AAAAAAAAAhM/yfITC-ajSPU/S220/Jo-100.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_LdJ_YM5dw4g/S_4sMkPmp7I/AAAAAAAAA9U/KzFo_75b3NY/s72-c/acceleo_overrides_view1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8684155425640756294.post-1579050543936773556</id><published>2010-05-26T11:44:00.000-07:00</published><updated>2010-05-26T11:58:08.523-07:00</updated><title type='text'>Rapid Text Replacement in an M2T approach</title><content type='html'>&lt;div style="text-align: justify;"&gt;Here is a very useful trick in Acceleo. Rapid text replacement allows you to quickly replace all occurrence of a chosen piece of text by some template invocation. Case differences are inferred generating toUpper() or toUpperFirst() depending on what's needed.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Here is an example:&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;a href="http://2.bp.blogspot.com/_LdJ_YM5dw4g/S_1s2Om2IlI/AAAAAAAAA8c/1ypQeuEGo9Q/s1600/acceleo_rapid_text_replacement1.png"&gt;&lt;img src="http://2.bp.blogspot.com/_LdJ_YM5dw4g/S_1s2Om2IlI/AAAAAAAAA8c/1ypQeuEGo9Q/s400/acceleo_rapid_text_replacement1.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5475652400842154578" style="text-align: justify; display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; cursor: pointer; width: 400px; height: 358px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;In a classical bottom-up approach, you have written your code first, and you now implement the Acceleo template from this code. What you want to do here is to replace all occurrences of "att1" by a dynamic behavior, i.e. by a template call.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;The easiest way to do this is to select one of the "att1" in the editor, and invoke the content assistant by hitting Ctrl + Space.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;a href="http://2.bp.blogspot.com/_LdJ_YM5dw4g/S_1s2feJY5I/AAAAAAAAA8k/Ub_utf_PSts/s1600/acceleo_rapid_text_replacement2.png"&gt;&lt;img src="http://2.bp.blogspot.com/_LdJ_YM5dw4g/S_1s2feJY5I/AAAAAAAAA8k/Ub_utf_PSts/s400/acceleo_rapid_text_replacement2.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5475652405369070482" style="text-align: justify; display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; cursor: pointer; width: 400px; height: 234px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;The completion assistant proposes to replace all occurrences of the selected text by a template call. A preview of the result is displayed in a tooltip close to the completion window.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;When you accept this option, all occurrences are replaced and you can immediately enter the template invocation needed, which is simultaneously replaced in all relevant locations.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;a href="http://3.bp.blogspot.com/_LdJ_YM5dw4g/S_1s2ihd_BI/AAAAAAAAA8s/Y2-iVMKx6lI/s1600/acceleo_rapid_text_replacement3.png"&gt;&lt;img src="http://3.bp.blogspot.com/_LdJ_YM5dw4g/S_1s2ihd_BI/AAAAAAAAA8s/Y2-iVMKx6lI/s400/acceleo_rapid_text_replacement3.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5475652406188309522" style="text-align: justify; display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; cursor: pointer; width: 400px; height: 311px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;All occurrences of att1 have been replaced by [javaName()/] (because javaName() is what was entered manually), but Att1 has been replaced by [javaName().toUpperFirst()/].&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;The next thing you'd want to do in the above example is to replace all occurrences of int by something like [javaType()/], and implement the javaType template to write the java type of the class attributes.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;a href="http://1.bp.blogspot.com/_LdJ_YM5dw4g/S_1s20QWUVI/AAAAAAAAA80/m8BOhBSfg2k/s1600/acceleo_rapid_text_replacement4.png"&gt;&lt;img src="http://1.bp.blogspot.com/_LdJ_YM5dw4g/S_1s20QWUVI/AAAAAAAAA80/m8BOhBSfg2k/s400/acceleo_rapid_text_replacement4.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5475652410948342098" style="text-align: justify; display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; cursor: pointer; width: 400px; height: 243px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Just proceed the same way and you're done. No risk to forget any occurrence of your type anymore!&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;a href="http://3.bp.blogspot.com/_LdJ_YM5dw4g/S_1s3A3DiKI/AAAAAAAAA88/oGHB7E2W2LA/s1600/acceleo_rapid_text_replacement5.png"&gt;&lt;img src="http://3.bp.blogspot.com/_LdJ_YM5dw4g/S_1s3A3DiKI/AAAAAAAAA88/oGHB7E2W2LA/s400/acceleo_rapid_text_replacement5.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5475652414331914402" style="text-align: justify; display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; cursor: pointer; width: 400px; height: 274px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&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/8684155425640756294-1579050543936773556?l=jomd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jomd.blogspot.com/feeds/1579050543936773556/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8684155425640756294&amp;postID=1579050543936773556' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8684155425640756294/posts/default/1579050543936773556'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8684155425640756294/posts/default/1579050543936773556'/><link rel='alternate' type='text/html' href='http://jomd.blogspot.com/2010/05/rapid-text-replacement-in-m2t-approach.html' title='Rapid Text Replacement in an M2T approach'/><author><name>Jonathan Musset</name><uri>http://www.blogger.com/profile/14571074456739152583</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_LdJ_YM5dw4g/Sr0Ltzy7QmI/AAAAAAAAAhM/yfITC-ajSPU/S220/Jo-100.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_LdJ_YM5dw4g/S_1s2Om2IlI/AAAAAAAAA8c/1ypQeuEGo9Q/s72-c/acceleo_rapid_text_replacement1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8684155425640756294.post-3762132629830069789</id><published>2010-05-26T05:55:00.000-07:00</published><updated>2010-05-26T06:16:59.152-07:00</updated><title type='text'>Acceleo 3.0 Non-Code Aspects</title><content type='html'>&lt;div style="text-align: justify;"&gt;I was preparing the Eclipse Helios Release review material for Acceleo 3.0 and I had to compute the following information... I thought it could be interesting to share these Non-Code aspects with the Acceleo community...&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;JUnit Tests metrics :&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;ul&gt;&lt;li&gt;706 unit tests are launched on every build&lt;/li&gt;&lt;li&gt;1219 unit tests are launched every day&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;JUnit Tests Code coverage :&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;ul&gt;&lt;li&gt;71 % for the code generation engine&lt;/li&gt;&lt;li&gt;84 % for the MTL compiler&lt;/li&gt;&lt;li&gt;29 % for the Eclipse UI - We plan to reach 50% in the next few weeks&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Code quality information :&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;ul&gt;&lt;li&gt;Checkstyle is activated on each distinct plug-in&lt;/li&gt;&lt;li&gt;Eclemma is used on a regular basis to improve test coverage&lt;/li&gt;&lt;li&gt;Yourkit is used on a regular basis to improve performances&lt;/li&gt;&lt;li&gt;Javadoc represents more than 46% of the Java source code&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;A code analysis page is available on &lt;a href="http://www.ohloh.net/p/acceleo-eclipse/analyses/latest"&gt;Ohloh&lt;/a&gt;.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Don't hesitate to &lt;a href="https://www.ohloh.net/p/acceleo-eclipse#"&gt;become a friend&lt;/a&gt; ;-)&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&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/8684155425640756294-3762132629830069789?l=jomd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jomd.blogspot.com/feeds/3762132629830069789/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8684155425640756294&amp;postID=3762132629830069789' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8684155425640756294/posts/default/3762132629830069789'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8684155425640756294/posts/default/3762132629830069789'/><link rel='alternate' type='text/html' href='http://jomd.blogspot.com/2010/05/acceleo-30-non-code-aspects.html' title='Acceleo 3.0 Non-Code Aspects'/><author><name>Jonathan Musset</name><uri>http://www.blogger.com/profile/14571074456739152583</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_LdJ_YM5dw4g/Sr0Ltzy7QmI/AAAAAAAAAhM/yfITC-ajSPU/S220/Jo-100.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8684155425640756294.post-6948528319580177592</id><published>2010-05-25T07:02:00.000-07:00</published><updated>2010-05-25T07:11:40.866-07:00</updated><title type='text'>Acceleo - Documentations are available</title><content type='html'>The documentation that comes with Acceleo 3.0 is ready. Everything is available in the Help menu : &lt;i&gt;Help &gt; Help Contents &gt; Acceleo Model To Text Transformation Language&lt;/i&gt;.&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Each document of the documentation set deals with a different aspect of mastering Acceleo :&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Plug-in Overview : This will give you at a glance a quick overview of what Acceleo offers. &lt;/li&gt;&lt;li&gt;Quick Start : This document is meant to help you get started with Acceleo as fast as possible. No details, no explanations, just the facts! &lt;/li&gt;&lt;li&gt;Android Tutorial : This is meant to give beginners a tutorial to get them started with defining their own code generators... and advanced users a way to discover some of Acceleo killer features. &lt;/li&gt;&lt;li&gt;User Guide : This document describes each and every feature of Acceleo. From the installation to the execution with a trip through the editing features, it will give you an in-depth description of everything there is to know about Acceleo. &lt;/li&gt;&lt;li&gt;New Acceleo Project : A short description of what a new Acceleo project has to offer (and how it should be laid out) in terms of files and features. &lt;/li&gt;&lt;li&gt;New Acceleo UI Project : Acceleo allows you to create "UI Projects" to ease the bundling and deployment of Acceleo generation modules. This short document will lead you through this process. &lt;/li&gt;&lt;li&gt;OCL operations reference : This is more of an OCL documentation, but this will give you an exhaustive list of the available OCL standard library operations, a short description and examples for each of them. &lt;/li&gt;&lt;li&gt;Acceleo operations reference : Same as the above, yet this time for the Acceleo standard (and non standard) libraries. Once again, a short description and examples for each of these operations will be listed. &lt;/li&gt;&lt;li&gt;Text Production Rules : This document is more of a normative document than it is an end-user documentation; it will help you understand the rules that Acceleo uses under the hood in order to determine when indentation should be swallowed, when lines should be indented, when lines should be trimmed...&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;Have fun and do not hesitate to give feedback through the mailling-lists, the bugzilla or &lt;a href="http://www.eclipse.org/modeling/m2t/newsgroup-mailing-list.php"&gt;the Eclipse M2T newsgroup&lt;/a&gt;! (you have to put the tag [Acceleo] in the message subject)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_LdJ_YM5dw4g/S_vaeT1yIHI/AAAAAAAAA7s/m-blZ9-vyjw/s1600/Docs.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 213px;" src="http://1.bp.blogspot.com/_LdJ_YM5dw4g/S_vaeT1yIHI/AAAAAAAAA7s/m-blZ9-vyjw/s400/Docs.png" alt="" id="BLOGGER_PHOTO_ID_5475209986255757426" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&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/8684155425640756294-6948528319580177592?l=jomd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jomd.blogspot.com/feeds/6948528319580177592/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8684155425640756294&amp;postID=6948528319580177592' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8684155425640756294/posts/default/6948528319580177592'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8684155425640756294/posts/default/6948528319580177592'/><link rel='alternate' type='text/html' href='http://jomd.blogspot.com/2010/05/acceleo-documentations-are-available.html' title='Acceleo - Documentations are available'/><author><name>Jonathan Musset</name><uri>http://www.blogger.com/profile/14571074456739152583</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_LdJ_YM5dw4g/Sr0Ltzy7QmI/AAAAAAAAAhM/yfITC-ajSPU/S220/Jo-100.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_LdJ_YM5dw4g/S_vaeT1yIHI/AAAAAAAAA7s/m-blZ9-vyjw/s72-c/Docs.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8684155425640756294.post-4167188441329927924</id><published>2010-05-25T05:59:00.000-07:00</published><updated>2010-05-25T06:17:30.207-07:00</updated><title type='text'>Acceleo Pre-Conditions to improve adaptability</title><content type='html'>&lt;div style="text-align: justify;"&gt;Imagine you want to implement different behavior for a code generation template depending on certain conditions.&lt;/div&gt;&lt;br /&gt;One way to do that would be to use if blocks to distinguish between those cases.&lt;br /&gt;Another, more elegant, way is to use pre-conditions. Let's say that you want to generate different code for associations whether or not they are declared ordered.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_LdJ_YM5dw4g/S_vNxFQ9mqI/AAAAAAAAA7c/oqeL_-V6Was/s1600/acceleo_template_precondition1.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 71px;" src="http://3.bp.blogspot.com/_LdJ_YM5dw4g/S_vNxFQ9mqI/AAAAAAAAA7c/oqeL_-V6Was/s400/acceleo_template_precondition1.png" alt="" id="BLOGGER_PHOTO_ID_5475196015109577378" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;The above example shows the &lt;i&gt;? (condition)&lt;/i&gt; syntax that tells Acceleo that the template must only be run if the pre-condition is satisfied.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8684155425640756294-4167188441329927924?l=jomd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jomd.blogspot.com/feeds/4167188441329927924/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8684155425640756294&amp;postID=4167188441329927924' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8684155425640756294/posts/default/4167188441329927924'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8684155425640756294/posts/default/4167188441329927924'/><link rel='alternate' type='text/html' href='http://jomd.blogspot.com/2010/05/acceleo-pre-conditions-to-improve.html' title='Acceleo Pre-Conditions to improve adaptability'/><author><name>Jonathan Musset</name><uri>http://www.blogger.com/profile/14571074456739152583</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_LdJ_YM5dw4g/Sr0Ltzy7QmI/AAAAAAAAAhM/yfITC-ajSPU/S220/Jo-100.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_LdJ_YM5dw4g/S_vNxFQ9mqI/AAAAAAAAA7c/oqeL_-V6Was/s72-c/acceleo_template_precondition1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8684155425640756294.post-3660359218571391218</id><published>2010-05-20T10:56:00.000-07:00</published><updated>2010-05-20T11:05:55.386-07:00</updated><title type='text'>The Acceleo Result View</title><content type='html'>&lt;div style="text-align: justify;"&gt;In Acceleo 3.0, the &lt;em&gt;Result View&lt;/em&gt; shows how the text, the templates, and the models  are synchronized. After a code generation, select any element in the &lt;em&gt;Result  View&lt;/em&gt; and the associated generated code will be highlighted. Likewise,  select any piece of code in a generated file, and you will see the associated  element in the &lt;em&gt;Result View&lt;/em&gt;.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&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/_LdJ_YM5dw4g/S_V5W-ECfgI/AAAAAAAAA5s/plfXNzB7T68/s400/android_Result_View.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5473414357662727682" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 324px; " /&gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;You can also right-click on an element in the &lt;em&gt;Result View&lt;/em&gt; and run:  &lt;em&gt;Open declaration&lt;/em&gt;. This will open the Acceleo expression associated with  the element.&lt;/p&gt;&lt;p style="text-align: justify;"&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/_LdJ_YM5dw4g/S_V5XMAprsI/AAAAAAAAA50/7USaq36VnQE/s400/android_Result_View_2.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5473414361406615234" 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;/span&gt;&lt;/p&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 class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8684155425640756294-3660359218571391218?l=jomd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jomd.blogspot.com/feeds/3660359218571391218/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8684155425640756294&amp;postID=3660359218571391218' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8684155425640756294/posts/default/3660359218571391218'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8684155425640756294/posts/default/3660359218571391218'/><link rel='alternate' type='text/html' href='http://jomd.blogspot.com/2010/05/acceleo-result-view.html' title='The Acceleo Result View'/><author><name>Jonathan Musset</name><uri>http://www.blogger.com/profile/14571074456739152583</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_LdJ_YM5dw4g/Sr0Ltzy7QmI/AAAAAAAAAhM/yfITC-ajSPU/S220/Jo-100.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_LdJ_YM5dw4g/S_V5W-ECfgI/AAAAAAAAA5s/plfXNzB7T68/s72-c/android_Result_View.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8684155425640756294.post-1546865122843532747</id><published>2010-05-04T01:39:00.000-07:00</published><updated>2010-05-04T01:53:22.897-07:00</updated><title type='text'>Dynamic Ecore with Acceleo - Editing and packaging</title><content type='html'>In the Android example I presented at &lt;a href="http://www.obeo.fr/videos/acceleo-eclipse/eclipse-modeling-runaway-acceleo.htm"&gt;Eclipse Con 2010&lt;/a&gt;, we start by creating an ecore file with a set of domain model elements, including the "Activity" and the "Widget" concepts. When editing the code generation MTL module files, we need access to the Android ecore concepts. We need to improve both the ecore file and the code generator. It's easier to do if we are able to edit the code generator and the domain metamodel in the same eclipse instance.&lt;br /&gt;&lt;br /&gt;We identify the domain ecore metamodel with its NsURI. In Acceleo 3.0, it is now possible to defined, in the MTL module file header, the NsURI of a dynamic Ecore/EPackage (even though it is defined in the same eclipse workspace). For instance, in the following picture, we are editing the "edit.mtl" file based on the "android.ecore" metamodel which is located in the same workspace.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_LdJ_YM5dw4g/S9_fvIzf5gI/AAAAAAAAA48/UXDFy4u_6mQ/s1600/DynamicEcore.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 162px;" src="http://1.bp.blogspot.com/_LdJ_YM5dw4g/S9_fvIzf5gI/AAAAAAAAA48/UXDFy4u_6mQ/s400/DynamicEcore.png" alt="" id="BLOGGER_PHOTO_ID_5467334473561400834" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;The packaging of an Acceleo project is not more complicated than the packaging an Eclipse plug-in. In this case of a dynamic ecore file, you have to know that you need to export all the required plug-ins, including the project which includes the "android.ecore" file.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_LdJ_YM5dw4g/S9_gAPD0N5I/AAAAAAAAA5E/HrODgAnDdxU/s1600/ExportAsPlugin.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 290px;" src="http://2.bp.blogspot.com/_LdJ_YM5dw4g/S9_gAPD0N5I/AAAAAAAAA5E/HrODgAnDdxU/s400/ExportAsPlugin.png" alt="" id="BLOGGER_PHOTO_ID_5467334767298230162" 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/8684155425640756294-1546865122843532747?l=jomd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jomd.blogspot.com/feeds/1546865122843532747/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8684155425640756294&amp;postID=1546865122843532747' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8684155425640756294/posts/default/1546865122843532747'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8684155425640756294/posts/default/1546865122843532747'/><link rel='alternate' type='text/html' href='http://jomd.blogspot.com/2010/05/dynamic-ecore-with-acceleo-editing-and.html' title='Dynamic Ecore with Acceleo - Editing and packaging'/><author><name>Jonathan Musset</name><uri>http://www.blogger.com/profile/14571074456739152583</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_LdJ_YM5dw4g/Sr0Ltzy7QmI/AAAAAAAAAhM/yfITC-ajSPU/S220/Jo-100.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_LdJ_YM5dw4g/S9_fvIzf5gI/AAAAAAAAA48/UXDFy4u_6mQ/s72-c/DynamicEcore.png' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8684155425640756294.post-3430012420469014201</id><published>2010-04-30T01:28:00.000-07:00</published><updated>2010-05-03T01:38:22.133-07:00</updated><title type='text'>Acceleo 3.0 : a pragmatic implementation of an OMG specification</title><content type='html'>With Acceleo 3.0 included in Eclipse 3.6, our goal is to provide the de facto or reference implementation of the MTL code generation standard. Yet some parts of the specification are still quite vague and ambiguous and collaboration with OMG isn't smooth ... We follow as much as possible the standard but sometimes we need to introduce some deflections with the specification because we would like to keep the exemplary pragmatism of the Acceleo.org 2.x version.&lt;br /&gt;&lt;br /&gt;For instance, we sometimes need to wrap Java services. It is useful to invoke some java code from inside an Acceleo template. The acceleo non-standard library provides a service "invoke" which allows just that. The invoked java service is wrapped in an Acceleo query. Such a service isn't defined in the specification but it is necessary in an Eclipse pragmatic implementation. For this reason, we decided to define 2 compilation modes in the Acceleo Compiler properties page. The default value is "false" for the "Strict MTL compliance" property. "unchecked" means that we allow to use the pragmatic non-standard library. When you check this value, some syntax errors could appear on your MTL files (each time you use the non-standard library) but the code generation execution still works...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_LdJ_YM5dw4g/S96LZN3Ec7I/AAAAAAAAA40/hjc4m6T-NIc/s1600/StrictMTLCompliance.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 339px;" src="http://1.bp.blogspot.com/_LdJ_YM5dw4g/S96LZN3Ec7I/AAAAAAAAA40/hjc4m6T-NIc/s400/StrictMTLCompliance.png" alt="" id="BLOGGER_PHOTO_ID_5466960263007990706" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.mda4eclipse.com/"&gt;Etienne Juliot&lt;/a&gt; will discuss about that (both the        specification and the implementation) at the &lt;a href="http://www.omg.org/news/meetings/tc/mn/special-events/Eclipse.htm"&gt;OMG Meeting Special Event&lt;/a&gt; on Tuesday 22nd June 2010 in Minneapolis...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8684155425640756294-3430012420469014201?l=jomd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jomd.blogspot.com/feeds/3430012420469014201/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8684155425640756294&amp;postID=3430012420469014201' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8684155425640756294/posts/default/3430012420469014201'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8684155425640756294/posts/default/3430012420469014201'/><link rel='alternate' type='text/html' href='http://jomd.blogspot.com/2010/04/acceleo-30-pragmatic-implementation-of.html' title='Acceleo 3.0 : a pragmatic implementation of an OMG specification'/><author><name>Jonathan Musset</name><uri>http://www.blogger.com/profile/14571074456739152583</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_LdJ_YM5dw4g/Sr0Ltzy7QmI/AAAAAAAAAhM/yfITC-ajSPU/S220/Jo-100.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_LdJ_YM5dw4g/S96LZN3Ec7I/AAAAAAAAA40/hjc4m6T-NIc/s72-c/StrictMTLCompliance.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8684155425640756294.post-7241696011670910162</id><published>2010-04-03T07:32:00.000-07:00</published><updated>2010-04-03T07:56:46.994-07:00</updated><title type='text'>Acceleo 2.7 is released... Destination 3.0!</title><content type='html'>&lt;a href="http://www.eclipse.org/acceleo"&gt;Acceleo 3.0&lt;/a&gt; is coming soon, with the Eclipse Helios train... Acceleo 3.0 already sports awesome stability and a level of functionality close to if not equal to its 2.x stream. We have planned several corrective versions in the next few years for the 2.x branch, &lt;a href="http://www.acceleo.org/pages/download-acceleo-2-7-0/en"&gt;the 2.7 version is out now&lt;/a&gt;! An official announcement will be done next week... Several improvements and bug fixes have been done for this release. You may want to have a look on &lt;a href="http://www.acceleo.org/pages/new-and-noteworthy-acceleo-2-7-0/"&gt;the new and noteworthy page for the 2.7.0 release&lt;/a&gt;. We also plan to release a 2.7.1 version this year and a 2.8 version next year.&lt;br /&gt;&lt;br /&gt;Do not hesitate to give feedback through the mailling-lists, the bug-tracker or the web forum... Note that Acceleo 3.0 users should use &lt;a href="http://www.eclipse.org/modeling/m2t/newsgroup-mailing-list.php"&gt;the Eclipse M2T newsgroup&lt;/a&gt;! (you have to put the tag [Acceleo] in the message subject)&lt;br /&gt;&lt;br /&gt;Last news for Acceleo 3.0 users... We have just changed the MTL file editor icon because we would like to be as close as possible of &lt;a href="http://www.eclipse.org/articles/Article-UI-Guidelines/Contents.html"&gt;the Eclipse user interface guidelines&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Here's an example of what we had before (the green icon) and what it looks like today...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_LdJ_YM5dw4g/S7dVCCH27bI/AAAAAAAAA4U/RyXoJw1aZUg/s1600/AcceleoMTL_old.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 200px; height: 91px;" src="http://4.bp.blogspot.com/_LdJ_YM5dw4g/S7dVCCH27bI/AAAAAAAAA4U/RyXoJw1aZUg/s200/AcceleoMTL_old.png" alt="" id="BLOGGER_PHOTO_ID_5455922967000575410" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_LdJ_YM5dw4g/S7dV2C7pB5I/AAAAAAAAA4k/RInWa1rZMjM/s1600/AcceleoMTL_new.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 198px;" src="http://3.bp.blogspot.com/_LdJ_YM5dw4g/S7dV2C7pB5I/AAAAAAAAA4k/RInWa1rZMjM/s400/AcceleoMTL_new.png" alt="" id="BLOGGER_PHOTO_ID_5455923860570965906" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_LdJ_YM5dw4g/S7dVNvq-yzI/AAAAAAAAA4c/g0pX7r0-svQ/s1600/AcceleoMTL_new.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/8684155425640756294-7241696011670910162?l=jomd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jomd.blogspot.com/feeds/7241696011670910162/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8684155425640756294&amp;postID=7241696011670910162' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8684155425640756294/posts/default/7241696011670910162'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8684155425640756294/posts/default/7241696011670910162'/><link rel='alternate' type='text/html' href='http://jomd.blogspot.com/2010/04/acceleo-27-is-released-destination-30.html' title='Acceleo 2.7 is released... Destination 3.0!'/><author><name>Jonathan Musset</name><uri>http://www.blogger.com/profile/14571074456739152583</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_LdJ_YM5dw4g/Sr0Ltzy7QmI/AAAAAAAAAhM/yfITC-ajSPU/S220/Jo-100.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_LdJ_YM5dw4g/S7dVCCH27bI/AAAAAAAAA4U/RyXoJw1aZUg/s72-c/AcceleoMTL_old.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8684155425640756294.post-7802223987321500454</id><published>2010-03-24T15:12:00.000-07:00</published><updated>2010-03-24T16:35:36.540-07:00</updated><title type='text'>Eclipse Con 2010 and Acceleo community feedbacks</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_LdJ_YM5dw4g/S6qR2SczFpI/AAAAAAAAA4M/jEhKTa7AegI/s1600/s01.jpg"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 308px; height: 232px;" src="http://1.bp.blogspot.com/_LdJ_YM5dw4g/S6qR2SczFpI/AAAAAAAAA4M/jEhKTa7AegI/s320/s01.jpg" alt="" id="BLOGGER_PHOTO_ID_5452330660736997010" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Eclipse Con seems to be a great success this year, like every year ;-)&lt;br /&gt;&lt;br /&gt;I have particularly liked the &lt;a href="http://www.eclipsecon.org/2010/sessions/?page=sessions&amp;amp;id=1600"&gt;Jeff Norris keynote&lt;/a&gt; this morning. What a standing ovation! Thank you Jeff for the road trip on mars...&lt;br /&gt;&lt;br /&gt;Thanks also to you &lt;a href="http://www.eclipsecon.org/2010/sessions/?page=sessions&amp;amp;id=1278"&gt;Kenn&lt;/a&gt; for the nice &lt;a href="http://www.eclipsecon.org/2010/sessions/?page=sessions&amp;amp;id=1278"&gt;Eclipse Modeling Runaway 2010&lt;/a&gt;. It was a pleasure to talk a little bit about Acceleo. For those of you who are interested, here is the fash demo I have shown during this session : &lt;a href="http://www.obeo.fr/videos/acceleo-eclipse/eclipse-modeling-runaway-acceleo.htm"&gt;Acceleo at Eclipse Modeling Runaway 2010&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Here are the slides of my 25 minutes session &lt;a href="http://www.slideshare.net/jmusset/acceleo-lets-start-with-an-android-example"&gt;Acceleo Code Generation - Let's start with an Android example&lt;/a&gt;. I hope that you liked it... Let's me know if you have learned something. I had 3 goals when I made this quick tutorial :&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Acceleo beginners could see a simple but concrete case-study&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Acceleo addicts could discover some new "killing" features, for the Obeo guys also ;-)&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Android experts could learn enough of the basics to be able to create advanced code generator in a few days&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;I'm not an Android expert but I like this technology and I have liked to make a quick example on how to use Android and Acceleo together. To be continued...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8684155425640756294-7802223987321500454?l=jomd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jomd.blogspot.com/feeds/7802223987321500454/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8684155425640756294&amp;postID=7802223987321500454' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8684155425640756294/posts/default/7802223987321500454'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8684155425640756294/posts/default/7802223987321500454'/><link rel='alternate' type='text/html' href='http://jomd.blogspot.com/2010/03/eclipse-con-2010-and-acceleo-community.html' title='Eclipse Con 2010 and Acceleo community feedbacks'/><author><name>Jonathan Musset</name><uri>http://www.blogger.com/profile/14571074456739152583</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_LdJ_YM5dw4g/Sr0Ltzy7QmI/AAAAAAAAAhM/yfITC-ajSPU/S220/Jo-100.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_LdJ_YM5dw4g/S6qR2SczFpI/AAAAAAAAA4M/jEhKTa7AegI/s72-c/s01.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8684155425640756294.post-7174909703597601148</id><published>2010-03-08T02:07:00.000-08:00</published><updated>2010-03-08T03:06:09.598-08:00</updated><title type='text'>Just a little bit about "Simple OCL"</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_LdJ_YM5dw4g/S5TNj9dfINI/AAAAAAAAA4E/hu1KL3GLVEc/s1600-h/Cambodia.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 305px; height: 289px;" src="http://1.bp.blogspot.com/_LdJ_YM5dw4g/S5TNj9dfINI/AAAAAAAAA4E/hu1KL3GLVEc/s320/Cambodia.png" alt="" id="BLOGGER_PHOTO_ID_5446203867075125458" border="0" /&gt;&lt;/a&gt;I just come back from Cambodia, and it has been a wonderful time to think about how to simplify modeling technologies ;-) ;-) I have focused on the language we use everytime to make automation tools with modeling technologies : OCL&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;The OCL OMG specification has been released several times in the last 5 years. We use OCL at Obeo to make automation tools with Acceleo and ATL, and we think that OCL queries should be as short as possible to improve the template readability... We have defined several common OCL queries that are always used in our tools. We would like to have these queries in the standard library because we must define them each time we have to make a new tool with Eclipse modeling technologies.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Here are some ways to simplify OCL I have discussed a couple of days ago with OCL experts. It isn't really easy to think about how to improve OCL because there were a lot of work on it and we can't change everything for compatibility reason. But, it is really possible to improve the language with little thing without breaking the compatibility.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;The first way for me to improve OCL is to add in the library the common stuff we define every time in our code generation and model transformation projects. When we navigate on models, the main things we do is to navigate around the current node, up and down : to get the children, the children of the children, the parent, and the siblings... OCL should propose shortcuts to go in these directions... Do we need a new function in the library or a new syntax element like in XPath? I don't know, but both will be better than what we have today. We often need to filter the types of the objects we would like to keep during this navigation. We spend a lot of time to explain how to get some specific children of the current node. As an example, here is the expression we have to write in OCL to get the descendant list of an object where we only want to keep the named elements :&lt;span style="color: rgb(102, 102, 204);"&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 102, 204);"&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;myCollection-&gt;select(oclIsKindOf(NamedElement))-&gt;                 collect(oclAsType(NamedElement))&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;It would be strictly equivalent to &lt;span style="color: rgb(102, 102, 102); font-style: italic;"&gt;eAllContents(NamedElement)&lt;/span&gt; if the query &lt;span style="color: rgb(102, 102, 102); font-style: italic;"&gt;eAllContents(OclType)&lt;/span&gt; was defined. Of course, we can define this query in  one common library for all the projects of my company. I'd prefer to have such a useful service in the OCL standard library to prevent naming ambiguities. Today, everybody gives its prefered name to this query and it isn't possible to understand easily the work of someone else.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;For the same reason, we would like to simplify the syntax used to make filters on collections. &lt;span style="color: rgb(102, 102, 204);"&gt;myCollection-&gt;select(name &lt;&gt; ' ')&lt;/span&gt; could be replaced by &lt;span style="color: rgb(102, 102, 204);"&gt;myCollection&lt;span style="font-weight: bold;"&gt;[&lt;/span&gt;name &lt;&gt; 0&lt;span style="font-weight: bold;"&gt;]&lt;/span&gt;&lt;/span&gt;. The "select" function is used everywhere in OCL queries. This new shorter syntax could really improve readability. To be extreme, &lt;span style="color: rgb(102, 102, 204);"&gt;[...]&lt;/span&gt; should be the way to filter every kind of thing, for example if I want to filter the types of the objects in the current collection, I would write something like that : &lt;blockquote&gt;&lt;/blockquote&gt;&lt;span style="color: rgb(102, 102, 204);"&gt; &lt;blockquote&gt;&lt;/blockquote&gt;  myCollection&lt;span style="font-weight: bold;"&gt;[&lt;/span&gt;Class&lt;span style="font-weight: bold;"&gt;]&lt;/span&gt;.name&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;span style="color: rgb(102, 102, 204);"&gt;  myCollection&lt;span style="font-weight: bold;"&gt;[&lt;/span&gt;Class &lt;span style="font-weight: bold;"&gt;or&lt;/span&gt; Interface&lt;span style="font-weight: bold;"&gt;]&lt;/span&gt;.name&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;In the second example, "name" could compile because there is a common attribute called "name" both in "Class" and "Interface". The goal is to replace the &lt;span style="color: rgb(102, 102, 102); font-style: italic;"&gt;oclAsType()&lt;/span&gt; function as often as possible.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Another way to improve the readability of the OCL expressions is to add operators like '+' or '-' between collections :&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;span style="color: rgb(102, 102, 204);"&gt;(property &lt;span style="font-weight: bold;"&gt;+&lt;/span&gt; method)-&gt;size()&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 204);"&gt;  (list &lt;span style="font-weight: bold;"&gt;-&lt;/span&gt; element)-&gt;size()&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 204);"&gt;  list + element&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Some researchers think that we can already do that with operator overloading, but to go further, we would probably need generics in OCL.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;The opinions of the OMG guys would be interesting ;-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8684155425640756294-7174909703597601148?l=jomd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jomd.blogspot.com/feeds/7174909703597601148/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8684155425640756294&amp;postID=7174909703597601148' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8684155425640756294/posts/default/7174909703597601148'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8684155425640756294/posts/default/7174909703597601148'/><link rel='alternate' type='text/html' href='http://jomd.blogspot.com/2010/03/just-little-bit-about-simple-ocl.html' title='Just a little bit about &quot;Simple OCL&quot;'/><author><name>Jonathan Musset</name><uri>http://www.blogger.com/profile/14571074456739152583</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_LdJ_YM5dw4g/Sr0Ltzy7QmI/AAAAAAAAAhM/yfITC-ajSPU/S220/Jo-100.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_LdJ_YM5dw4g/S5TNj9dfINI/AAAAAAAAA4E/hu1KL3GLVEc/s72-c/Cambodia.png' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8684155425640756294.post-4427987847687471455</id><published>2010-02-05T07:58:00.000-08:00</published><updated>2010-02-05T08:06:52.495-08:00</updated><title type='text'>Tooling to help you starting a code generator from an example - To go Further...</title><content type='html'>&lt;div style="text-align: justify;"&gt;Few weeks ago &lt;a href="http://model-driven-blogging.blogspot.com/2010/01/eclipse-modeling-gems-for-developers.html"&gt;Cedric Brun&lt;/a&gt; announced a new way to create in a few minutes a pragmatic code generator with Acceleo. He said that Acceleo provides a specific tooling to help you starting a code generator from an example :&lt;br /&gt;&lt;/div&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;the new file wizard with the option to initialize it with an existing file content&lt;/li&gt;&lt;/ul&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;the search &amp;amp; replace smart completion to quickly transform the example to a real template we can apply on a model&lt;/li&gt;&lt;/ul&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;the "for" closing brace completion auto-magically find a coherent place&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;Since his message, we have added several menu items to go further :&lt;br /&gt;&lt;/div&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;"Refactor &gt; Extract As Template..." to create a new template with the selected text&lt;/li&gt;&lt;/ul&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;"Source &gt; As Protected Area..." to define a protected area where we can regenerate target files without losing any modification&lt;/li&gt;&lt;/ul&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;"Quickfix" when an operation call doesn't compile, you can create a new template or a new query that make the compilation work&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_LdJ_YM5dw4g/S2xBdJV5cZI/AAAAAAAAA38/3nzzSUK89H8/s1600-h/Popup.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 198px;" src="http://4.bp.blogspot.com/_LdJ_YM5dw4g/S2xBdJV5cZI/AAAAAAAAA38/3nzzSUK89H8/s320/Popup.png" alt="" id="BLOGGER_PHOTO_ID_5434790819309121938" 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/8684155425640756294-4427987847687471455?l=jomd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jomd.blogspot.com/feeds/4427987847687471455/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8684155425640756294&amp;postID=4427987847687471455' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8684155425640756294/posts/default/4427987847687471455'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8684155425640756294/posts/default/4427987847687471455'/><link rel='alternate' type='text/html' href='http://jomd.blogspot.com/2010/02/tooling-to-help-you-starting-code.html' title='Tooling to help you starting a code generator from an example - To go Further...'/><author><name>Jonathan Musset</name><uri>http://www.blogger.com/profile/14571074456739152583</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_LdJ_YM5dw4g/Sr0Ltzy7QmI/AAAAAAAAAhM/yfITC-ajSPU/S220/Jo-100.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_LdJ_YM5dw4g/S2xBdJV5cZI/AAAAAAAAA38/3nzzSUK89H8/s72-c/Popup.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8684155425640756294.post-4758902757411900266</id><published>2010-02-05T06:56:00.000-08:00</published><updated>2010-02-05T07:02:48.719-08:00</updated><title type='text'>New Acceleo naming conventions</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_LdJ_YM5dw4g/S2wyRD88YzI/AAAAAAAAA30/EYtJrFale7E/s1600-h/Wizards.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 263px; height: 122px;" src="http://3.bp.blogspot.com/_LdJ_YM5dw4g/S2wyRD88YzI/AAAAAAAAA30/EYtJrFale7E/s320/Wizards.png" alt="" id="BLOGGER_PHOTO_ID_5434774119029433138" border="0" /&gt;&lt;/a&gt;Acceleo 3.0 is coming soon... For your information, we will change the way we name everything to follow the new naming conventions of the MTL OMG standard. The main change is that the code generation file will be named "Module". To help you understand how to use the new Acceleo wizards, you have to know the following mappings :&lt;br /&gt;&lt;/div&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;An Acceleo 2.6 module will become an Acceleo 3.0 project&lt;/li&gt;&lt;/ul&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;An Acceleo 2.6 template will become an Acceleo 3.0 module file&lt;/li&gt;&lt;/ul&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;An Acceleo 2.6 script will become an Acceleo 3.0 template block&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8684155425640756294-4758902757411900266?l=jomd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jomd.blogspot.com/feeds/4758902757411900266/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8684155425640756294&amp;postID=4758902757411900266' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8684155425640756294/posts/default/4758902757411900266'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8684155425640756294/posts/default/4758902757411900266'/><link rel='alternate' type='text/html' href='http://jomd.blogspot.com/2010/02/acceleo-3.html' title='New Acceleo naming conventions'/><author><name>Jonathan Musset</name><uri>http://www.blogger.com/profile/14571074456739152583</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_LdJ_YM5dw4g/Sr0Ltzy7QmI/AAAAAAAAAhM/yfITC-ajSPU/S220/Jo-100.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_LdJ_YM5dw4g/S2wyRD88YzI/AAAAAAAAA30/EYtJrFale7E/s72-c/Wizards.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8684155425640756294.post-3961598970402574867</id><published>2010-01-18T03:52:00.000-08:00</published><updated>2010-01-18T04:02:52.630-08:00</updated><title type='text'>The Eclipse Con 2010 Acceleo submissions have been accepted</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.eclipsecon.org/2010/static/image/100x100_speaking.gif"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 100px; height: 100px;" src="http://www.eclipsecon.org/2010/static/image/100x100_speaking.gif" alt="" border="0" /&gt;&lt;/a&gt;My submission has been accepted ;-) Each year, in California, the Eclipse Foundation, organizes the conference « Eclipse Con » which gathers 1500 developers.&lt;br /&gt;&lt;br /&gt;Last Year, Acceleo has been promoted as “Best Open Source Eclipse-Based Developer Tool”. This international award has rewarded several years of work of Obeo and Acceleo community to produce one of the best tool for model driven.&lt;br /&gt;&lt;br /&gt;This year, we'll show the Acceleo 3.0 version which will be final on June 2010. This version is really important for us because this is the first time we plan to graduate under Eclipse.&lt;br /&gt;&lt;br /&gt;Obeo will be at Eclipse Con 2010 and will present these talks:&lt;br /&gt;&lt;/div&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;&lt;a href="http://www.eclipsecon.org/2010/sessions/sessions?id=1165"&gt;Acceleo Code Generation : Let's start with an Android example&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.eclipsecon.org/2010/sessions/sessions?id=1162"&gt;EEF you want sexy properties for EMF... [made with Acceleo 3.0]&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.eclipsecon.org/2010/sessions/sessions?id=1169"&gt;Diff, Merge and Patch your Models with Helios&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.eclipsecon.org/2010/sessions/sessions?id=1180"&gt;Eclipse SOA TLP: Lock, Stock and Barrel&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.eclipsecon.org/2010/sessions/sessions?id=1207"&gt;Painless (?) Metamodel Evolution&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.eclipsecon.org/2010/sessions/sessions?id=1420"&gt;GMF showcases for embedded, web and engineering designers&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;I'll be happy to see you there...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8684155425640756294-3961598970402574867?l=jomd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jomd.blogspot.com/feeds/3961598970402574867/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8684155425640756294&amp;postID=3961598970402574867' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8684155425640756294/posts/default/3961598970402574867'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8684155425640756294/posts/default/3961598970402574867'/><link rel='alternate' type='text/html' href='http://jomd.blogspot.com/2010/01/acceleo-submissions-at-eclipse-con-2010_18.html' title='The Eclipse Con 2010 Acceleo submissions have been accepted'/><author><name>Jonathan Musset</name><uri>http://www.blogger.com/profile/14571074456739152583</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_LdJ_YM5dw4g/Sr0Ltzy7QmI/AAAAAAAAAhM/yfITC-ajSPU/S220/Jo-100.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8684155425640756294.post-4797398290311289982</id><published>2009-12-10T03:35:00.000-08:00</published><updated>2009-12-10T03:44:35.822-08:00</updated><title type='text'>Acceleo Code Generation : Let's start with an Android example</title><content type='html'>This is the title of the tutorial I have just submitted for &lt;a href="https://www.eclipsecon.org/submissions/2010/view_talk.php?id=1165"&gt;Eclipse Con 2010&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Here is the description of the tutorial :&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;Acceleo is a pragmatic implementation of the OMG* standard for code generation called MTL*. Still in incubation state, we plan to have Acceleo graduate for the next Eclipse simultaneous release (Helios).&lt;br /&gt;&lt;br /&gt;Being an expert at code generation or Acceleo is not necessary to get started on your first code generator : using the Acceleo editor and the powerful features it exposes (completion, syntax highlighting, on-the-fly compilation, quick outline, ...), it is very easy to get started once you understand the most basic principles.&lt;br /&gt;&lt;br /&gt;This tutorial presents both the MTL language and the Acceleo Development Toolkit which is provided in the M2T project. Beginners will learn what code generation, M2T, and Acceleo are, as well as how to use them on a concrete case-study. Acceleo addicts will discover the new standard syntax, new functionalities and techniques. We will give you enough of the basics to create your own code generation for a specific target system. We have chosen the Android platform as a target to show that we can also use Acceleo for mobile software.&lt;br /&gt;&lt;br /&gt;Here is the tutorial agenda :&lt;br /&gt;- Acceleo : What's that new code generation engine?&lt;br /&gt;- Create an Android prototype and its corresponding model&lt;br /&gt;- Initialize your code generation project from the prototype&lt;br /&gt;- Editing your code generation file to make the Android prototype run&lt;br /&gt;- Launching your code generation on another model example&lt;br /&gt;- Packaging as an eclipse plug-in and for standalone usage&lt;br /&gt;- Create new Android applications in few clicks&lt;br /&gt;- How to override a specific behavior in the target environment&lt;br /&gt;- On the developper side : How to make your own extensions with Acceleo?&lt;br /&gt;&lt;br /&gt;We'll end the tutorial with other complex code generation examples made with Acceleo : EEF, UML to Java, Ecore to python, Migrating from a language to another...&lt;br /&gt;&lt;br /&gt;*OMG : Object Management Group&lt;br /&gt;*MTL : Model to Text Language&lt;br /&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8684155425640756294-4797398290311289982?l=jomd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jomd.blogspot.com/feeds/4797398290311289982/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8684155425640756294&amp;postID=4797398290311289982' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8684155425640756294/posts/default/4797398290311289982'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8684155425640756294/posts/default/4797398290311289982'/><link rel='alternate' type='text/html' href='http://jomd.blogspot.com/2009/12/acceleo-code-generation-lets-start-with.html' title='Acceleo Code Generation : Let&apos;s start with an Android example'/><author><name>Jonathan Musset</name><uri>http://www.blogger.com/profile/14571074456739152583</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_LdJ_YM5dw4g/Sr0Ltzy7QmI/AAAAAAAAAhM/yfITC-ajSPU/S220/Jo-100.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8684155425640756294.post-3989297698422782722</id><published>2009-11-10T02:58:00.000-08:00</published><updated>2009-11-10T03:04:13.882-08:00</updated><title type='text'>Paris Eclipse DemoCamp 2009</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_LdJ_YM5dw4g/SvlHjcyzicI/AAAAAAAAA2A/Dn8T4uhuUdc/s1600-h/image001.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 90px; height: 76px;" src="http://4.bp.blogspot.com/_LdJ_YM5dw4g/SvlHjcyzicI/AAAAAAAAA2A/Dn8T4uhuUdc/s320/image001.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5402427902357899714" /&gt;&lt;/a&gt;The Eclipse DemoCamp comes to Paris the 17th of november at 18h30. I'll present the first Eclipse version of the Acceleo code generator. I hope we will have lot of attendees. &lt;br /&gt;&lt;br /&gt;It's free and you can register here :&lt;br /&gt;http://wiki.eclipse.org/Eclipse_DemoCamps_November_2009/Paris&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8684155425640756294-3989297698422782722?l=jomd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jomd.blogspot.com/feeds/3989297698422782722/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8684155425640756294&amp;postID=3989297698422782722' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8684155425640756294/posts/default/3989297698422782722'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8684155425640756294/posts/default/3989297698422782722'/><link rel='alternate' type='text/html' href='http://jomd.blogspot.com/2009/11/eclipse-democamp-comes-to-paris-17th-of.html' title='Paris Eclipse DemoCamp 2009'/><author><name>Jonathan Musset</name><uri>http://www.blogger.com/profile/14571074456739152583</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_LdJ_YM5dw4g/Sr0Ltzy7QmI/AAAAAAAAAhM/yfITC-ajSPU/S220/Jo-100.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_LdJ_YM5dw4g/SvlHjcyzicI/AAAAAAAAA2A/Dn8T4uhuUdc/s72-c/image001.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8684155425640756294.post-7617313937712480710</id><published>2009-07-07T01:24:00.001-07:00</published><updated>2009-07-07T01:27:51.362-07:00</updated><title type='text'>Acceleo 2.6 and the next-gen version (0.8) cohabitation</title><content type='html'>Once you have installed the 2 versions of Acceleo in your eclipse (Acceleo 2.6 and the next-gen version actually named 0.8), you might need to identify the one you really want to use.&lt;br /&gt;&lt;br /&gt;At the moment, the reference version is Acceleo 2.6 and all the wizards and the menus of this version are available in an "Acceleo" category. We often use a "Model To Text" category for the next-gen version because we try to use the eclipse projects conventions.&lt;br /&gt;&lt;br /&gt;There was a conflict for the Acceleo Perspective, because we can't give the name "Model To Text" to our perspective ;-) , so we decided to change the icon of the Acceleo 2.6 perspective by adding a small "2.6" decorator.&lt;br /&gt;&lt;br /&gt;Finally, if you want to disable temporarly the next-gen Acceleo, you can disable the eclipse acceleo capabilities in the general preferences, as in the following screenshot.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_LdJ_YM5dw4g/SlMGTjX7DrI/AAAAAAAAAXE/m4Ugr_ej_ZY/s1600-h/disable-new-acceleo.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 281px;" src="http://3.bp.blogspot.com/_LdJ_YM5dw4g/SlMGTjX7DrI/AAAAAAAAAXE/m4Ugr_ej_ZY/s320/disable-new-acceleo.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5355631314856513202" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8684155425640756294-7617313937712480710?l=jomd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jomd.blogspot.com/feeds/7617313937712480710/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8684155425640756294&amp;postID=7617313937712480710' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8684155425640756294/posts/default/7617313937712480710'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8684155425640756294/posts/default/7617313937712480710'/><link rel='alternate' type='text/html' href='http://jomd.blogspot.com/2009/07/acceleo-26-and-next-gen-version-08.html' title='Acceleo 2.6 and the next-gen version (0.8) cohabitation'/><author><name>Jonathan Musset</name><uri>http://www.blogger.com/profile/14571074456739152583</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_LdJ_YM5dw4g/Sr0Ltzy7QmI/AAAAAAAAAhM/yfITC-ajSPU/S220/Jo-100.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_LdJ_YM5dw4g/SlMGTjX7DrI/AAAAAAAAAXE/m4Ugr_ej_ZY/s72-c/disable-new-acceleo.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8684155425640756294.post-3689178187209965378</id><published>2009-07-01T07:10:00.000-07:00</published><updated>2009-07-01T07:27:26.880-07:00</updated><title type='text'>A wizard to migrate an Acceleo template from a version to another</title><content type='html'>The next-gen Acceleo has differences with the Acceleo.org one, especially the new syntax based on the MTL OMG standard.&lt;br /&gt;&lt;br /&gt;Here is a demonstration of the first version of the wizard that will help you to migrate from the old syntax to the new one.&lt;br /&gt;&lt;br /&gt;We are actually working on that. The final tooling will be available on June 2010.&lt;br /&gt;&lt;br /&gt;Don't hesitate to track a new bug on the following page if an equivalence is not yet implemented : https://bugs.eclipse.org/bugs/enter_bug.cgi?product=M2T&lt;br /&gt;&lt;br /&gt;&lt;a linkindex="88" 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;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8684155425640756294-3689178187209965378?l=jomd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jomd.blogspot.com/feeds/3689178187209965378/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8684155425640756294&amp;postID=3689178187209965378' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8684155425640756294/posts/default/3689178187209965378'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8684155425640756294/posts/default/3689178187209965378'/><link rel='alternate' type='text/html' href='http://jomd.blogspot.com/2009/07/wizard-to-migrate-acceleo-template-from.html' title='A wizard to migrate an Acceleo template from a version to another'/><author><name>Jonathan Musset</name><uri>http://www.blogger.com/profile/14571074456739152583</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_LdJ_YM5dw4g/Sr0Ltzy7QmI/AAAAAAAAAhM/yfITC-ajSPU/S220/Jo-100.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_u5tMWln_Ie8/SfG84zaQ8UI/AAAAAAAAAHQ/yFx48PBeQhY/s72-c/migrate.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8684155425640756294.post-2366206835764242493</id><published>2009-06-27T00:43:00.000-07:00</published><updated>2009-06-27T00:46:15.823-07:00</updated><title type='text'>Acceleo 2.6.0 is out</title><content type='html'>Acceleo 2.6.0 is compatible with all the Eclipse releases of the last 4 years, named Eclipse Galileo (June 2009), Eclipse Ganymede (June 2008), Eclipse Europa (June 2007) and Eclipse Callisto (June 2006).&lt;br /&gt;&lt;p&gt; Acceleo.org was created 4 years ago, and as the time goes, the Team has been more and more convinced that the MOF Model To Text OMG specification was the way to go for the project. We started to code a &lt;a linkindex="19" href="http://www.eclipse.org/modeling/m2t/?project=acceleo#acceleo"&gt;reference implementation for the standard&lt;/a&gt; within the Eclipse M2T project. We have managed to provide nice tooling, simple syntax and efficient code generation with all the pragmatism we had about Acceleo.org. There aren't a lot of differences between the old version of acceleo and the new one. &lt;/p&gt; &lt;p&gt;We are confident that the Acceleo community gain value from moving to a self hosted project to an Eclipse one, and that end users will follow the transfert from Acceleo.org to Eclipse.org as we will provide the same level of functionnalities and we will insure an interoperability between the old syntax and the new syntax (the standard one). &lt;/p&gt; &lt;p&gt; The Acceleo Team will continue to maintain the old syntax of Acceleo outside of eclipse (&lt;a linkindex="20" href="http://www.acceleo.org/"&gt;www.acceleo.org&lt;/a&gt; ) during some few years, but the new versions and the new features will take place on Eclipse.org. In the next release you'll have an automated tooling helping you to migrate your templates from a syntax to another. &lt;/p&gt; &lt;p&gt;For Acceleo lover, you will find in Eclipse Acceleo everything you have loved in the Acceleo.org version and more (the standard compliance with more documentation). This specification is really a good one: &lt;a linkindex="21" href="http://www.omg.org/spec/MOFM2T/1.0/"&gt;http://www.omg.org/spec/MOFM2T/1.0/&lt;/a&gt; &lt;/p&gt; &lt;p&gt; At the moment, those who need a perfect stability must continue to use the Acceleo.org version (2.6). As time goes on, Eclipse Acceleo is better and better and you can already have a try right now (&lt;a linkindex="22" href="http://www.eclipse.org/modeling/m2t/downloads/?project=acceleo"&gt;0.8&lt;/a&gt;). That said, we still need some few month to get the same stability level between our current stable version and the new one. The next generation Acceleo will be ready for the next Eclipse simultaneous release (Helios).&lt;/p&gt;&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_LdJ_YM5dw4g/SkXN-xy4pxI/AAAAAAAAAWk/3vEFsvBsBk4/s1600-h/EclipseAcceleoCompletion.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 158px;" src="http://3.bp.blogspot.com/_LdJ_YM5dw4g/SkXN-xy4pxI/AAAAAAAAAWk/3vEFsvBsBk4/s320/EclipseAcceleoCompletion.png" alt="" id="BLOGGER_PHOTO_ID_5351910210602051346" border="0" /&gt;&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/8684155425640756294-2366206835764242493?l=jomd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jomd.blogspot.com/feeds/2366206835764242493/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8684155425640756294&amp;postID=2366206835764242493' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8684155425640756294/posts/default/2366206835764242493'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8684155425640756294/posts/default/2366206835764242493'/><link rel='alternate' type='text/html' href='http://jomd.blogspot.com/2009/06/acceleo-260-is-out.html' title='Acceleo 2.6.0 is out'/><author><name>Jonathan Musset</name><uri>http://www.blogger.com/profile/14571074456739152583</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_LdJ_YM5dw4g/Sr0Ltzy7QmI/AAAAAAAAAhM/yfITC-ajSPU/S220/Jo-100.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_LdJ_YM5dw4g/SkXN-xy4pxI/AAAAAAAAAWk/3vEFsvBsBk4/s72-c/EclipseAcceleoCompletion.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8684155425640756294.post-4520540623511509811</id><published>2009-04-09T06:49:00.000-07:00</published><updated>2009-04-09T08:55:48.294-07:00</updated><title type='text'>Acceleo roadmap : Eclipse foundation and MTL standard</title><content type='html'>Hi,&lt;br /&gt;&lt;br /&gt;Acceleo.org was created 4 years ago, and as the time goes, the Team has been more and more convinced that the MOF Model To Text OMG specification was the way to go for the project.  More  than one year ago now, we started to code a reference implementation for the standard within the Eclipse M2T project - named MTL. We're now convinced that we'll manage to provide nice tooling, simple syntax and efficient code generation with all the pragmatism we had about Acceleo.org and we asked&lt;br /&gt;the Eclipse Foundation to rename MTL in "Acceleo".&lt;br /&gt;&lt;br /&gt;Our goal is this one: a transparent development strategy and stop having two similar projects in 2 places : Eclipse MTL and Acceleo, but in a near future, promote just the Eclipse one as the "Next Gen Acceleo".&lt;br /&gt;&lt;br /&gt;We are confident that the Acceleo community gain value from moving to a self hosted project to an Eclipse one, and that end users will follow the  transfert from Acceleo.org to Eclipse.org as we will provide the same level of functionnalities and we will insure an interoperability between the old syntax and the new syntax (the standard one).&lt;br /&gt;&lt;br /&gt;Don't worry. There aren't a lot of differences between the old version of acceleo and the new one&lt;br /&gt;&lt;br /&gt;The Acceleo Team will continue to maintain the old syntax of Acceleo outside of eclipse (&lt;a class="moz-txt-link-abbreviated" href="http://www.acceleo.org/"&gt;www.acceleo.org&lt;/a&gt; &lt;a class="moz-txt-link-rfc2396E" href="http://www.acceleo.org/"&gt;&lt;http: org=""&gt;&lt;/http:&gt;&lt;/a&gt;) during some few years, but the new versions and features will take place on Eclipse.org. In the next few days you'll get an automated tooling helping you to migrate your templates from a syntax to another.&lt;br /&gt;&lt;br /&gt;For Acceleo lover, you will find in Eclipse Acceleo everything you have loved in the Acceleo.org version and more (the standard compliance with more documentation)&lt;br /&gt;This specification is really a good one : &lt;a class="moz-txt-link-freetext" href="http://www.omg.org/spec/MOFM2T/1.0/"&gt;http://www.omg.org/spec/MOFM2T/1.0/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;At the moment, those who need a perfect stability must continue to use the Acceleo.org version.  As time goes on, Eclipse Acceleo is better and better and you can already have a try right now. That said, we still need a couple of month to get the same stability level between our current stable version and the new one.&lt;br /&gt;&lt;br /&gt;I'm sure that Eclipse Acceleo will be a success &lt;span class="moz-smiley-s3"&gt;&lt;span&gt; ;-) &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;You can download the first builds (0.8.0) here :&lt;br /&gt;&lt;a class="moz-txt-link-freetext" href="http://www.eclipse.org/modeling/m2t/downloads/?project=acceleo"&gt;http://www.eclipse.org/modeling/m2t/downloads/?project=acceleo&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;A presentation of Eclipse Acceleo  took place at Eclipse Conference and had nice feedbacks.&lt;br /&gt;&lt;a class="moz-txt-link-freetext" href="http://www.eclipsecon.org/2009/sessions?id=387"&gt;http://www.eclipsecon.org/2009/sessions?id=387&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Congrats to all the commiters and contributors involved in the first stable version of this component&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8684155425640756294-4520540623511509811?l=jomd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jomd.blogspot.com/feeds/4520540623511509811/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8684155425640756294&amp;postID=4520540623511509811' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8684155425640756294/posts/default/4520540623511509811'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8684155425640756294/posts/default/4520540623511509811'/><link rel='alternate' type='text/html' href='http://jomd.blogspot.com/2009/04/acceleo-30-roadmap-eclipse-foundation.html' title='Acceleo roadmap : Eclipse foundation and MTL standard'/><author><name>Jonathan Musset</name><uri>http://www.blogger.com/profile/14571074456739152583</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_LdJ_YM5dw4g/Sr0Ltzy7QmI/AAAAAAAAAhM/yfITC-ajSPU/S220/Jo-100.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8684155425640756294.post-2644583346519825326</id><published>2009-02-06T16:37:00.000-08:00</published><updated>2009-02-06T16:38:23.576-08:00</updated><title type='text'>Eclipse Con 2009 is coming soon</title><content type='html'>&lt;div style="width:425px;text-align:left" id="__ss_999564"&gt;&lt;a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/jmusset/acceleo-mtl-code-generation?type=presentation" title="Acceleo MTL Code Generation"&gt;Acceleo MTL Code Generation&lt;/a&gt;&lt;object style="margin:0px" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=acceleo-mtl-code-generation-1233965433131648-1&amp;amp;stripped_title=acceleo-mtl-code-generation"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;embed src="http://static.slideshare.net/swf/ssplayer2.swf?doc=acceleo-mtl-code-generation-1233965433131648-1&amp;amp;stripped_title=acceleo-mtl-code-generation" 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/jmusset"&gt;jmusset&lt;/a&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/8684155425640756294-2644583346519825326?l=jomd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jomd.blogspot.com/feeds/2644583346519825326/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8684155425640756294&amp;postID=2644583346519825326' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8684155425640756294/posts/default/2644583346519825326'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8684155425640756294/posts/default/2644583346519825326'/><link rel='alternate' type='text/html' href='http://jomd.blogspot.com/2009/02/eclipse-con-2009-is-coming-soon.html' title='Eclipse Con 2009 is coming soon'/><author><name>Jonathan Musset</name><uri>http://www.blogger.com/profile/14571074456739152583</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_LdJ_YM5dw4g/Sr0Ltzy7QmI/AAAAAAAAAhM/yfITC-ajSPU/S220/Jo-100.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8684155425640756294.post-1441547815407163176</id><published>2008-07-29T07:09:00.001-07:00</published><updated>2008-07-29T07:10:21.426-07:00</updated><title type='text'></title><content type='html'>&lt;pre&gt;&lt;b style="color: black; background-color: rgb(255, 255, 102);"&gt;Acceleo&lt;/b&gt; 2.3.0 is out and it is now compliant with Eclipse Ganymede distribution.&lt;br /&gt;&lt;br /&gt;http://www.acceleo.org&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8684155425640756294-1441547815407163176?l=jomd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jomd.blogspot.com/feeds/1441547815407163176/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8684155425640756294&amp;postID=1441547815407163176' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8684155425640756294/posts/default/1441547815407163176'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8684155425640756294/posts/default/1441547815407163176'/><link rel='alternate' type='text/html' href='http://jomd.blogspot.com/2008/07/acceleo-2.html' title=''/><author><name>Jonathan Musset</name><uri>http://www.blogger.com/profile/14571074456739152583</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_LdJ_YM5dw4g/Sr0Ltzy7QmI/AAAAAAAAAhM/yfITC-ajSPU/S220/Jo-100.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8684155425640756294.post-3218983430025164238</id><published>2008-01-11T01:49:00.000-08:00</published><updated>2008-01-11T02:18:50.933-08:00</updated><title type='text'>Pour commencer, un peu de reverse ingeneering</title><content type='html'>Pour le lancement de ce blog, je ressors un vieux papier sur la rétro-ingénierie et le MDA que j'ai  rédigé avec &lt;a href="http://www-adele.imag.fr/%7Ejmfavre"&gt;Jean-Marie Favre&lt;/a&gt; dans le cadre de la conférence "IDM06".&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www-adele.imag.fr/users/Jean-Marie.Favre/papers/RetroIngenierieDirigeeParLesMetamodelesConceptsMethodesEtOutils.pdf"&gt;Rétro-ingénierie dirigée par les métamodèles&lt;/a&gt;&lt;a href="http://www.obeo.fr/"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-style: italic;"&gt;Résumé.&lt;/span&gt; L'Ingénierie Dirigée par les Modèles est un thème en pleine expansion aussi bien dans le monde académique que dans le monde industriel. Bien que l'on puisse imaginer un futur basé sur l'utilisation systématique de modèles, il n'en reste pas moins que les pratiques industrielles sont centrées sur le code. Le succès de l'IDM sera non seulement lié à la prise en compte des nouveaux développements mais aussi et surtout à la prise en compte des logiciels existants voire patrimoniaux. Cet article montre que l'IDM est en fait extrêmement bien adapté à cette problématique. La notion de métamodèle, trop souvent négligée dans le domaine de la rétro-ingénierie, se révèle en fait être un point clé. La rétro-ingénierie dirigée par les métamodèles est une piste extrêmement prometteuse. Cette thématique est abordée dans cet article selon trois axes :&lt;br /&gt;- D'un point de vue conceptuel, on montre que les concepts fondamentaux de l'IDM et de la rétro-ingénierie se révèlent en fait être les mêmes.&lt;br /&gt;- D'un point de vue méthodologique, cet article montre que la notion de métamodèles est au coeur des processus de ré ingénierie globale.&lt;br /&gt;- D'un point de vue outils, on montre que les technologies de l'IDM s'appliquent à la rétro-ingénierie et à l'évolution des logiciels existants. A titre d'illustration, un exemple de cartographie dirigée par les métamodèles est présenté en utilisant l'environnement Obeo Agility basé sur Eclipse et EMF.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8684155425640756294-3218983430025164238?l=jomd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jomd.blogspot.com/feeds/3218983430025164238/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8684155425640756294&amp;postID=3218983430025164238' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8684155425640756294/posts/default/3218983430025164238'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8684155425640756294/posts/default/3218983430025164238'/><link rel='alternate' type='text/html' href='http://jomd.blogspot.com/2008/01/rtro-ingnierie-dirige-par-les-mtamodles.html' title='Pour commencer, un peu de reverse ingeneering'/><author><name>Jonathan Musset</name><uri>http://www.blogger.com/profile/14571074456739152583</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://2.bp.blogspot.com/_LdJ_YM5dw4g/Sr0Ltzy7QmI/AAAAAAAAAhM/yfITC-ajSPU/S220/Jo-100.png'/></author><thr:total>0</thr:total></entry></feed>
