<?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-7081216924330892658</id><updated>2011-12-16T04:30:26.963+01:00</updated><category term='mobile'/><category term='articles'/><category term='modelization'/><category term='technologies'/><category term='html5'/><category term='web'/><category term='development'/><category term='AppEngine'/><category term='#java #android #ios'/><category term='gwt'/><category term='UI'/><category term='methodology'/><category term='application'/><category term='dart'/><category term='frameworks'/><category term='agile'/><category term='DSL'/><category term='white papers'/><category term='software engineering'/><category term='ORM'/><category term='course'/><category term='internet'/><category term='eclipse'/><category term='meta-tooling'/><category term='collaborative development'/><category term='CASE tool'/><category term='#eclipse #indigo'/><category term='linux'/><category term='SCM'/><category term='system'/><category term='Go'/><category term='scala'/><category term='java'/><category term='tizen'/><category term='patterns'/><category term='security'/><category term='definitions'/><category term='language'/><category term='golang'/><category term='Google'/><category term='libraries'/><category term='databases'/><category term='JavaFX'/><category term='french'/><category term='editor'/><category term='dartlang'/><category term='android'/><category term='golang-france'/><category term='intel'/><category term='software'/><category term='architecture'/><category term='google apps'/><category term='ide'/><category term='OS'/><title type='text'>IceTea Tonic</title><subtitle type='html'>Everything and nothing in particular about Modeling, Architecture, Software engineering,...</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>96</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-7817560883729956735</id><published>2011-12-16T04:25:00.000+01:00</published><updated>2011-12-16T04:30:26.968+01:00</updated><title type='text'>Alternative search engine</title><content type='html'>I used to use mainly Google as everyday search engine, and I'm quite satisfied with for my daily usage. Nevertheless I do it knowing that everything is traced, and that the filtering of web has already started under pressure of governements around the world. It is maybe time to start searching alternative search engine in the case where....&lt;br /&gt;I've not searched a lot, but I found a promising peer-to-peer based search engine called &lt;a href="http://yacy.net/en/"&gt;YaCy&lt;/a&gt;...&lt;br /&gt;&lt;br /&gt;&lt;i&gt;"YaCy is a &lt;a href="http://fsfe.org/about/basics/freesoftware.en.html"&gt;free&lt;/a&gt; search engine that anyone can use to build a search portal for their intranet or to help search the public internet. When contributing to the world-wide peer network, the scale of YaCy is limited only by the number of users in the world and can index billions of web pages. It is fully &lt;a href="http://en.wikipedia.org/wiki/Peer-to-peer"&gt;decentralized&lt;/a&gt;, all users of the search engine network are equal, the network does not store user search requests and it is not possible for anyone to censor the content of the shared index. We want to achieve freedom of information through a free, distributed web search which is powered by the world's users."&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;I let you discover it...and find other ones.&lt;span style="color: #404040; font-family: Arial, Helvetica, sans-serif; font-size: 14px; line-height: 23px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7081216924330892658-7817560883729956735?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/7817560883729956735/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=7817560883729956735' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/7817560883729956735'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/7817560883729956735'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2011/12/alternative-search-engine.html' title='Alternative search engine'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-6969046079831879856</id><published>2011-12-11T09:42:00.001+01:00</published><updated>2011-12-11T10:11:13.072+01:00</updated><title type='text'>Web based IDEs</title><content type='html'>I've dreamed about a cloud oriented IDE since many years ; accessing remotely to a full development environment including text editor, refactoring, source version control , testing, collaboration , pair reviewing, ,automatic deployment (for instance if the IDE is on GAE), ubiquity (desktops, but also ipad, galaxy tab, ...), simplicity, modeling, specifying and so on...&lt;br /&gt;&lt;br /&gt;&amp;nbsp;We are at a moment of the history where everything converges on this idealistic world ; mobile, cloud, HTML5, languages, ...&lt;br /&gt;&lt;br /&gt;We can mention some of the pionneers of this new kind of development paradigm :&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://eclipse.org/orion/"&gt;Eclipse orion project&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://eclipsophy.blogspot.com/2011/01/eclipse-orion-first-impressions-and.html"&gt;Orion on Ipad&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://amber-lang.net/"&gt;Amber&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://tour.golang.org/#1"&gt;Tour of Go&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.dartlang.org/docs/getting-started/index.html"&gt;Tour of Dart&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://build.phonegap.com/"&gt;PhoneGap Build&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;We have not yet reached the ideal CASE as described upper. But we &amp;nbsp;can see that every bricks are there...&amp;nbsp;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7081216924330892658-6969046079831879856?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/6969046079831879856/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=6969046079831879856' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/6969046079831879856'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/6969046079831879856'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2011/12/web-based-ides.html' title='Web based IDEs'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-3266203188862929119</id><published>2011-12-01T08:58:00.001+01:00</published><updated>2011-12-01T09:02:07.647+01:00</updated><title type='text'>Rodin-B</title><content type='html'>Models, methods, Uml, Mda,Mdd are nowadays less "a la mode", fashionable than 10 years ago. Maybe because we expected too much from them wrt the skills needed from developers to use them correctly. Education failed poorly in this domain. From my point of view, we tried too much to build cathedrals with heterogeneous stones. I'm persuaded that modelling needs a dedicated language to succeed, ie the next generation language while we reinvent the wheel since 20 years withe languages which are conceptually the same with a different flavor ( java, c#, scala, ruby, javascript, go, dart,...).But in lack of this new kind of language, we have to do withthe latter.Today i just wanted to recall in mind that higher level languages already exist to ensure that the generated code is conformed to the specifications. It is the case of the so called synchronous languages, but also formal methods like the B-Method, and its latest evolution taking into account events. It even exists eclipse based IDE like the rodin-b one. If you are curious, don't hesitate to have a glance to it. http://www.event-b.org/index.html&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7081216924330892658-3266203188862929119?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/3266203188862929119/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=3266203188862929119' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/3266203188862929119'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/3266203188862929119'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2011/12/robin-b.html' title='Rodin-B'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-6334042718094038603</id><published>2011-11-27T10:29:00.001+01:00</published><updated>2011-11-27T10:29:49.475+01:00</updated><title type='text'>New Dart slides</title><content type='html'>Just a little post for indicating that new presentation slides are available here :http://www.dartlang.org/news/2011/11/23/dart-presentations-and-slides-available.html&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7081216924330892658-6334042718094038603?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/6334042718094038603/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=6334042718094038603' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/6334042718094038603'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/6334042718094038603'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2011/11/new-dart-slides.html' title='New Dart slides'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-6926959095088572111</id><published>2011-11-15T16:35:00.001+01:00</published><updated>2011-11-15T16:43:47.624+01:00</updated><title type='text'>Dart? Why not not Smalltalk?</title><content type='html'>Dart will surely be a (the?) main actor in a near future to develop well structured code for the Web, and even will replace GWT quite quickly on the stage.&lt;br /&gt;&lt;br /&gt;It is still interesting to see elsewhere what it already exists which does roughtly the same thing than Dart does... And because I still love Smalltalk (and because some roots of Darts are from Smalltalk with a Java-like flavour), I highly recommend the reader to take a glance on the following projects :)&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://amber-lang.net/"&gt;Amber&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.seaside.st/"&gt;Seaside&amp;nbsp;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.pharo-project.org/home"&gt;Pharo&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;You will be surprised that many hot topics of today are already available since a while in these projects...&amp;nbsp; as always with Smalltalk ;)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7081216924330892658-6926959095088572111?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/6926959095088572111/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=6926959095088572111' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/6926959095088572111'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/6926959095088572111'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2011/11/dart-why-not-not-smalltalk.html' title='Dart? Why not not Smalltalk?'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-3521118665210025397</id><published>2011-11-03T09:12:00.005+01:00</published><updated>2011-11-03T09:13:29.027+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ide'/><category scheme='http://www.blogger.com/atom/ns#' term='dart'/><category scheme='http://www.blogger.com/atom/ns#' term='editor'/><title type='text'>Dart language editor</title><content type='html'>The Dart language grows quite fast, and thinks about the language itself and the tools at the same time, condition sine qua non to encounter success quickly, especially on the web development market. &lt;a href="http://www.dartlang.org/docs/getting-started/editor/index-win.html"&gt;The Dart development editor&lt;/a&gt; is out. &lt;br /&gt;One of the strengths of the tool&amp;nbsp; is the ability to compile Dart code into javascript seamlessly. The editor seems to be built upon Eclipse RCP, which is quite good and enables Google to eventually reuse skills from the GWT team (why not the GWT designer tool adapted to Dart?). We also could think about a Dart tool upon Eclipse &lt;a href="http://www.eclipse.org/orion/"&gt;Orion&lt;/a&gt;, the future web oriented development environment from the Eclipse foundation... But it is a little bit later :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7081216924330892658-3521118665210025397?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/3521118665210025397/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=3521118665210025397' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/3521118665210025397'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/3521118665210025397'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2011/11/dart-language-editor.html' title='Dart language editor'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-62223725736447623</id><published>2011-10-31T13:59:00.001+01:00</published><updated>2011-10-31T13:59:10.185+01:00</updated><title type='text'>Golang-france : new translation</title><content type='html'>I've just put on &lt;a href="http://code.google.com/p/golang-france/"&gt;golang-france&lt;/a&gt; a new translation "Débugger du code Go avec GDB"...&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7081216924330892658-62223725736447623?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/62223725736447623/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=62223725736447623' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/62223725736447623'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/62223725736447623'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2011/10/golang-france-new-translation.html' title='Golang-france : new translation'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-1997599060396279118</id><published>2011-10-25T09:06:00.005+02:00</published><updated>2011-10-25T09:07:28.396+02:00</updated><title type='text'>End of cycle</title><content type='html'>After SteeveJobs, and Dennis Ritchie, &lt;a href="http://techcrunch.com/2011/10/24/creator-of-lisp-john-mccarthy-dead-at-84/?utm_source=feedburner&amp;amp;utm_medium=feed&amp;amp;utm_campaign=Feed%3A+Techcrunch+%28TechCrunch%29"&gt;John McCarthy&lt;/a&gt; is also dead. McCarthy is the creator of Lisp, and one of the pionneers in AI. An old world is&amp;nbsp; passing away&amp;nbsp; by loosing them and gives the keys to the Y generation... These inheritance&amp;nbsp; is very rich : functionnal programming, obejct oriented programming, modern OS, new kind of ergonomy, and so on... We only have to digg into it to create the objects of the future...&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7081216924330892658-1997599060396279118?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/1997599060396279118/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=1997599060396279118' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/1997599060396279118'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/1997599060396279118'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2011/10/end-of-cycle.html' title='End of cycle'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-7119540957161820645</id><published>2011-10-18T09:14:00.001+02:00</published><updated>2011-10-25T09:07:37.447+02:00</updated><title type='text'>Nitobi racheté par Adobe!</title><content type='html'>&lt;b&gt;Nitobi&lt;/b&gt;, the &lt;a href="http://www.phonegap.com/"&gt;Phonegap &lt;/a&gt;mobile plateform creator, has been recently acquired by   Adobe, showing thus that Adobe is trying to leave the trop constricted scheme of Flash while HTML5 is emerging more and more ( and because of the Apple's  boycott)...&lt;br /&gt;&lt;br /&gt;Here is the implication of this buying :  &lt;i&gt;&amp;nbsp;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;"What does this mean for us?This acquisition will allow Nitobi to focus solely on PhoneGap and work with Adobe to offer developers more efficient, expressive design and development across devices with HTML5, CSS and JavaScript. By joining forces with Adobe, we’ll be able to offer even more innovative applications across platforms and devices, with greater reach.“Adobe has always been a big supporter of the open source community and at the forefront of enabling rich, web based applications across screens,” said Andre Charland, CEO of Nitobi. “We share the same philosophy about enabling extraordinary mobile and web applications. Becoming part of the Adobe family with its industry-leading tools and technologies opens up amazing new opportunities for PhoneGap and our customers.”Another really exciting part of this is that we’re putting the PhoneGap code base in the Apache Software Foundation."&lt;/i&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7081216924330892658-7119540957161820645?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/7119540957161820645/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=7119540957161820645' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/7119540957161820645'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/7119540957161820645'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2011/10/nitobi-rachete-par-adobe.html' title='Nitobi racheté par Adobe!'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-1722829109680646123</id><published>2011-10-11T15:48:00.001+02:00</published><updated>2011-10-11T15:49:00.119+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JavaFX'/><category scheme='http://www.blogger.com/atom/ns#' term='UI'/><category scheme='http://www.blogger.com/atom/ns#' term='scala'/><title type='text'>ScalaFX</title><content type='html'>&lt;br /&gt;&lt;a href="http://javafx.steveonjava.com/javafx-2-0-and-scala-like-milk-and-cookies/"&gt;ScalaFx &lt;/a&gt;is arising ; a very promising UI DSL for building heavy weight applications, and RIA ones too. &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7081216924330892658-1722829109680646123?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/1722829109680646123/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=1722829109680646123' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/1722829109680646123'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/1722829109680646123'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2011/10/scalafx-is-arising-very-promising-ui.html' title='ScalaFX'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-437183529243268006</id><published>2011-10-10T10:42:00.001+02:00</published><updated>2011-10-17T09:50:06.076+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dartlang'/><category scheme='http://www.blogger.com/atom/ns#' term='dart'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>DART</title><content type='html'>Here comes &lt;a href="http://www.dartlang.org/"&gt;DART &lt;/a&gt;we spoke about fews weeks ago. You will notice the name of the site ;) : dartlang, like a wink to golang from the same provider, ie Google.You'll also notice &lt;a href="http://blog.chromium.org/2011/10/dart-language-for-structured.html"&gt;on this blog&lt;/a&gt; the ability like with Go to write code online and to test it directly. Have fun discovering this new language dedicated to the web... or not...&lt;br /&gt;&lt;br /&gt;(update)after a quick glance to the language, I'm a little bit disappointed ; I expected much more, and actually much more different... I took my dreams for reality ;)nevertheless, it is not a bad language, moreover if we consider it is at early stages of its new life...&lt;br /&gt;We can see it like a javascript 2.0 enabling to better structure javascript code, which is not bad in fine. It will be nice to see in few months how Dart will be used by Google itself, how it will be included or not on android, how the dart2js translator will be fast and efficient enough to compete with GWT, if Dart is intended to work both on client and server side, if dart will be dedicated to the client side and Go to the server one, and so on...&lt;br /&gt;A lot will depends also of the IDE... The GWT eclipse plugin is quite powerful today by enabling to develop web applications with all the power of a Java IDE (refactoring, references, code assist, ...). It is the key point for me, since Smalltalk...&lt;br /&gt;&lt;br /&gt;(update2)&lt;br /&gt; &lt;br /&gt;It already exists an inception of &lt;a href="http://dartwatch.com/index.php/2011/10/step-by-step-building-the-dart-eclipse-ide-plugin/"&gt;Dart IDE&lt;/a&gt; under the form of an eclipse plugin... to be built manually  up to now. It is nice to have at the same time the language and the IDE...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7081216924330892658-437183529243268006?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/437183529243268006/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=437183529243268006' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/437183529243268006'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/437183529243268006'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2011/10/dart.html' title='DART'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-7615666418126690939</id><published>2011-09-29T17:45:00.001+02:00</published><updated>2011-09-29T17:45:07.510+02:00</updated><title type='text'></title><content type='html'>New document on &lt;a href="http://code.google.com/p/golang-france/downloads/list"&gt;Golang-France &lt;/a&gt;available :* "C/C++ and Go" &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7081216924330892658-7615666418126690939?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/7615666418126690939/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=7615666418126690939' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/7615666418126690939'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/7615666418126690939'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2011/09/new-document-on-golang-france-available.html' title=''/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-4992700596796587860</id><published>2011-09-28T14:12:00.000+02:00</published><updated>2011-09-29T09:04:00.542+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='intel'/><category scheme='http://www.blogger.com/atom/ns#' term='mobile'/><category scheme='http://www.blogger.com/atom/ns#' term='tizen'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='html5'/><title type='text'>Tizen</title><content type='html'>Intel leaves Meego, already left by Nokia, to focus now on &lt;a href="https://www.tizen.org/"&gt;Tizen &lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;What will be the future of this new platform?&amp;nbsp; It will depend on the ecosystem which will be built around it, and the strategic industrial members along Intel. I've no prognostics up to now on the chance of success of this initiative.&lt;br /&gt;&lt;br /&gt;Nevertheless, the architecture of this platform (based upon Linux and HTML5 as corner stones) is interesting, and makes WebOS choices open sourced. HTML5 is obviously the next universal GUI system. Why still learn different systems like swing, gtk, winforms, flash, silverlight, and so on... when we have powerful &lt;b&gt;browsers&lt;/b&gt;(web engines actually, the key of universality) , many developers already educated in js, htmls, css, and when everybody may find his happiness in the features proposed by the triptic js,css,html5. It lacks of course good IDE, good editors, ... but it is a question of time. &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7081216924330892658-4992700596796587860?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/4992700596796587860/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=4992700596796587860' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/4992700596796587860'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/4992700596796587860'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2011/09/tizen.html' title='Tizen'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-7385531390111026603</id><published>2011-09-28T09:14:00.002+02:00</published><updated>2011-09-28T09:20:23.727+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='golang-france'/><category scheme='http://www.blogger.com/atom/ns#' term='Go'/><category scheme='http://www.blogger.com/atom/ns#' term='french'/><category scheme='http://www.blogger.com/atom/ns#' term='golang'/><title type='text'>Golang -France</title><content type='html'>I translated in french few more Go articles you can find on &lt;a href="http://code.google.com/p/golang-france/downloads/list"&gt;golang-france&lt;/a&gt;.  &lt;br /&gt;&lt;br /&gt;* &lt;a href="http://code.google.com/p/golang-france/downloads/detail?name=defer%2C%20panic%20et%20%28ha%29recover.pdf&amp;can=2&amp;q="&gt;defer, panic et (ha)recover.pdf&lt;/a&gt; &lt;br /&gt;* &lt;a href="http://code.google.com/p/golang-france/downloads/detail?name=Gestion%20des%20erreurs%20en%20Go.pdf&amp;can=2&amp;q=#makechanges"&gt;Gestion des erreurs en Go.pdf&lt;/a&gt;&lt;br /&gt;* &lt;a href="http://code.google.com/p/golang-france/downloads/detail?name=Pratique%20de%20la%20programmation%20en%20go.pdf&amp;can=2&amp;q="&gt;Pratique de la programmation en go.pdf&lt;/a&gt;&lt;br /&gt;* &lt;a href="http://code.google.com/p/golang-france/downloads/detail?name=Concurrence_go.pdf&amp;can=2&amp;q="&gt;Concurrence_go.pdf&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7081216924330892658-7385531390111026603?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/7385531390111026603/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=7385531390111026603' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/7385531390111026603'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/7385531390111026603'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2011/09/golang-france_28.html' title='Golang -France'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-4521022487279803523</id><published>2011-09-09T14:23:00.008+02:00</published><updated>2011-09-12T14:35:41.195+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dart'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><category scheme='http://www.blogger.com/atom/ns#' term='language'/><title type='text'>Dart new google programming language for the web</title><content type='html'>It seems that google wants ,after having invested in gwt, go, and other stuff, to influence the web programming too ... The new baby is DART :&lt;br /&gt;* &lt;a href="http://gotocon.com/aarhus-2011/presentation/Opening%20Keynote:%20Dart,%20a%20new%20programming%20language%20for%20structured%20web%20programming"&gt;presentation&lt;/a&gt; &lt;br /&gt;* &lt;a href="http://www.extremetech.com/computing/95417-google-announces-dart-programming-language"&gt;announce&lt;/a&gt;&lt;br /&gt;* &lt;a href="http://siliconfilter.com/dart-googles-new-programming-language-is-coming-next-month/"&gt;article &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;What is interesting to me, it's  the people who have worked on it.  Go was developped by  C creator and fellows, and Dart by emminent Smalltalker :)&lt;br /&gt;&lt;br /&gt;We may imagine that these two languages (go an dart) will share different kind of problematics and different kind of granularity, and not really compete themselves...&lt;br /&gt;&lt;br /&gt;I imagine Dart like a Seaside-like language and framework with continuation inside :) We'll see that in few days.&lt;br /&gt;&lt;br /&gt;I also suppose that dart is coming to replace java and dalvik on android machines, and this to avoid problems with Oracle. The path is long to make a new language successful, but if it is related to android, the success (like objective-C) may be guaranteed.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7081216924330892658-4521022487279803523?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/4521022487279803523/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=4521022487279803523' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/4521022487279803523'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/4521022487279803523'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2011/09/dart-new-google-programming-language.html' title='Dart new google programming language for the web'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-8595118503289390262</id><published>2011-09-08T08:43:00.002+02:00</published><updated>2011-09-08T08:48:01.624+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gwt'/><category scheme='http://www.blogger.com/atom/ns#' term='google apps'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><title type='text'>GWT 2.4 out</title><content type='html'>GWT 2.4 was just provided to the developpers yesterday ; below are the release notes&lt;br /&gt;http://code.google.com/webtoolkit/doc/latest/ReleaseNotes.html&lt;br /&gt;Not a big release in my opinion, but follows the new scheme to deliver more ofter production-ready versions.&lt;br /&gt;This version is mainly dedicated to android and google apps.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7081216924330892658-8595118503289390262?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/8595118503289390262/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=8595118503289390262' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/8595118503289390262'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/8595118503289390262'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2011/09/gwt-24-out.html' title='GWT 2.4 out'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-3015149696299711013</id><published>2011-09-06T16:56:00.002+02:00</published><updated>2011-09-06T17:00:03.947+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='golang-france'/><category scheme='http://www.blogger.com/atom/ns#' term='course'/><category scheme='http://www.blogger.com/atom/ns#' term='Go'/><category scheme='http://www.blogger.com/atom/ns#' term='french'/><category scheme='http://www.blogger.com/atom/ns#' term='golang'/><title type='text'>Golang-France</title><content type='html'>I created yesterday the  "&lt;a href="http://code.google.com/p/golang-france"&gt;http://code.google.com/p/golang-france&lt;/a&gt; web site which the goal is to gather different documentation in french about the Go language.&lt;br /&gt;&lt;br /&gt;I've in parallel started to translate the 3 days course which is available on the Go web site ; the alpha version of the first day is already available on golang-france.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7081216924330892658-3015149696299711013?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/3015149696299711013/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=3015149696299711013' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/3015149696299711013'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/3015149696299711013'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2011/09/golang-france.html' title='Golang-France'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-2351675781592597405</id><published>2011-06-29T12:08:00.003+02:00</published><updated>2011-06-29T12:14:20.246+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='#java #android #ios'/><title type='text'>In-The-Box</title><content type='html'>Flexycore  has developed a android2Iphone translator (ISpectrum) since a while, and just opensourced the tool two months ago under the name "In-The-Box" :&lt;br /&gt;&lt;a href="http://www.in-the-box.org/"&gt;http://www.in-the-box.org/&lt;/a&gt;&lt;br /&gt;I've not yet tested it, and I don't know if I'll have time to do it... If you digg into  the project, don't hesitate to give a feeling return.. Thx.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7081216924330892658-2351675781592597405?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/2351675781592597405/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=2351675781592597405' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/2351675781592597405'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/2351675781592597405'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2011/06/in-box.html' title='In-The-Box'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-5255515721075982607</id><published>2011-06-20T13:52:00.001+02:00</published><updated>2011-06-20T13:53:55.297+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='#eclipse #indigo'/><title type='text'>New Eclipse version : Indigo</title><content type='html'>The version of Eclipse (named Indigo) was released 5 days ago. &lt;br /&gt;http://www.ibm.com/developerworks/library/os-eclipse-indigo/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7081216924330892658-5255515721075982607?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/5255515721075982607/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=5255515721075982607' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/5255515721075982607'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/5255515721075982607'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2011/06/new-eclipse-version-indigo.html' title='New Eclipse version : Indigo'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-3664313479522092857</id><published>2011-05-16T10:38:00.006+02:00</published><updated>2011-05-16T11:02:28.608+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='application'/><category scheme='http://www.blogger.com/atom/ns#' term='internet'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>App Internet</title><content type='html'>George Colony, Forrester Research's CEO, predicts the end of both traditional desktop and web applications. Those models would be replaced by App Internet applications. I agree totally with him, and moreover we can already say that App Internet applications are the present. The question is actually  not to predict if App Internet applications will be the future, but on which basis  these applications will be built. &lt;br /&gt;What are App Internet applications finally? They are applications which merge different technics and which have in common to gather information from different source through internet in order to perform what they are built for. App Internet applications are kind of desktop applications which have to be connected to every kind of internet information in order to work properly (even if the off-line mode may offer the user to use the application when no connection is available...but for  a short amount of time). AIR from adobe, Silverlight, JavaFX/Java, ..., are attempts today to achieve those goals. It is a first step. In my opinion, the future will be a combination of technologies like :&lt;br /&gt;- HTML/CSS/JS (handwriten or generated)for the rendering, the gui&lt;br /&gt;- a container enabling the GUI to interact with with the underlying system (java/javafx2, dotNet, phonegap, ...)&lt;br /&gt;- REST or Web services API for communicating between App Internet Applications or between App Internet Applications and cloud oriented services (the ones from Google for instance)&lt;br /&gt;- distributed storage like the one provided by Amazon or Google &lt;br /&gt;We already started in my company to architecture our apps with the kind of material. We easily  mix pure web applications with desktop applications through an internet bus based upon restlets. We merge also javafx and web, swt with web, and so on... &lt;br /&gt;It is up to now a little bit empirical, but the overall pattern arise step by step...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7081216924330892658-3664313479522092857?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/3664313479522092857/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=3664313479522092857' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/3664313479522092857'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/3664313479522092857'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2011/05/app-internet.html' title='App Internet'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-3034746386080006332</id><published>2011-05-11T16:03:00.005+02:00</published><updated>2011-05-11T16:46:33.334+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AppEngine'/><category scheme='http://www.blogger.com/atom/ns#' term='Go'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><category scheme='http://www.blogger.com/atom/ns#' term='golang'/><title type='text'>Go on Google AppEngine</title><content type='html'>Go is a language I'm following from its beginning one year ago, and I believe in its potential. It is always difficult to bet on the success or not of a technology (I succeeded for Java, Eclipse, GWT, ..., failed for Groovy for instance). Go has many advantages for its own like Google behind, Ken Thomson as co-creator, nice syntax,http://www.blogger.com/img/blank.gif performance, ...&lt;br /&gt;But it also lacked up to now of publicity, large developer community, good IDE, no dynamic library binding, and so on...&lt;br /&gt;It is almost the past for all those drawbacks ; Google IO bring GO on before the stage, Eclipse has a quite nice GO plugin, cgo is better and better, ...&lt;br /&gt;Google and the Go development team has worked a lot the past months to offer from now the ability for developers to build AppEngine applications in GO (&lt;a href="http://blog.golang.org/2011/05/go-and-google-app-engine.html"&gt;see &lt;/a&gt;)... After Python and Java, Go will be the next language being able to be used with AppEngine... It is a strong message sent to the community in my opinion.&lt;br /&gt;Let the future do its job and we'll see if GO can handle all its promises.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7081216924330892658-3034746386080006332?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/3034746386080006332/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=3034746386080006332' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/3034746386080006332'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/3034746386080006332'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2011/05/go-on-google-appengine.html' title='Go on Google AppEngine'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-1509370458375803187</id><published>2010-06-23T07:08:00.001+02:00</published><updated>2010-06-23T07:11:09.023+02:00</updated><title type='text'>Go roots</title><content type='html'>Interesting &lt;a href="http://radar.oreilly.com/2010/06/does-the-world-need-yet-anothe.html"&gt;article&lt;/a&gt; about why Go has been developped&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7081216924330892658-1509370458375803187?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/1509370458375803187/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=1509370458375803187' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/1509370458375803187'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/1509370458375803187'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2010/06/go-roots.html' title='Go roots'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-5304821792903735142</id><published>2010-06-13T07:42:00.003+02:00</published><updated>2010-06-13T08:05:45.841+02:00</updated><title type='text'>Using js as flash-like application development language</title><content type='html'>To pursue the former post that stated that browser is the natural way to perform the V part of the MVC pattern, we could now focus a little more on this approach.&lt;br /&gt;&lt;br /&gt;When we develop with flash, silverlight or javafx, we use three languages(two for javafx) : the domain language, xml and css. It is actually the same as for classical web development : html (subset of xml), js, and css. Even more, flash through actionscript is quite similar to js. &lt;br /&gt;&lt;br /&gt;So why do we still using Flash, silverlight or javafx? It is mainly because of :&lt;br /&gt;* vectorial nature of the languages, and the timeline, or states notions which are natively implemented&lt;br /&gt;* the integrated solution for the client/server concern&lt;br /&gt;* the highly efficient tools which are proposed&lt;br /&gt;* the compatibility with the existing server libraries (java and dotNet especially)&lt;br /&gt;* other?&lt;br /&gt;&lt;br /&gt;Apart the lack of tools, we can see nothing particuliar which can't be done by the html, js, css tuple... Take a look at javafx ; a javafx UI is composed of a tree of nodes, and terminal nodes are vectorial graphical ones. The language itself is very near to the js syntax with in addition the ability to have strong typing, and a very useful feature called "bind" we don't find elsewhere natively.&lt;br /&gt;&lt;br /&gt;If we took a glance to the DOM, what is it? A tree of nodes too, but the leaves have not true vectorial nature. &lt;br /&gt;&lt;br /&gt;If we replaced the html widgets by vectorial "home made" ones (e.g. by using raphaelgwt or something else),and if we implement the State pattern used by javafx composer along a timeline class,  we could have quite the same features as flash, or others.&lt;br /&gt;&lt;br /&gt;To conclude quickly, we can see that current web material has the potential to replace every existing other technologies (more especially with the advent of html5 features like canvas, video, ..., and the always more amazing enhancements made in js interpretation ), but it is too disparate, and needs an orchester chief under a sole umbrella ; why not GWT with the appropriate features and tools?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7081216924330892658-5304821792903735142?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/5304821792903735142/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=5304821792903735142' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/5304821792903735142'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/5304821792903735142'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2010/06/using-js-as-flash-like-application.html' title='Using js as flash-like application development language'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-2345869844876922655</id><published>2010-06-07T06:56:00.003+02:00</published><updated>2010-06-07T07:10:37.744+02:00</updated><title type='text'>Go gui</title><content type='html'>Go lacks today widget toolkit; it is certainly a question of time to find one.&lt;br /&gt;&lt;br /&gt;After thinking of building a wt for Go, i envisaged two ways of performing it :&lt;br /&gt;&lt;br /&gt;- binding an existing cross plateform library like qt, gtk, swt&lt;br /&gt;&lt;br /&gt;- considering that the browser is the future of doing gui&lt;br /&gt;&lt;br /&gt;I finally opted for the later one, because of with html5 and the browser performances we have nowadays, it is the best way for developping &lt;br /&gt;once and run everywhere.&lt;br /&gt;&lt;br /&gt;So my framework would be for Go the following :&lt;br /&gt;&lt;br /&gt;- gwt for gui building&lt;br /&gt;&lt;br /&gt;- go for application processing&lt;br /&gt;&lt;br /&gt;- REST for communicating between gui ang backend&lt;br /&gt;&lt;br /&gt;By default the framework would run on localhost and would provide a browser window ( made with xul or swt ) to mimics AIR or Silverlght.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7081216924330892658-2345869844876922655?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/2345869844876922655/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=2345869844876922655' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/2345869844876922655'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/2345869844876922655'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2010/06/go-gui.html' title='Go gui'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-945414049932166709</id><published>2010-05-30T08:21:00.008+02:00</published><updated>2011-05-11T16:17:11.994+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Go'/><category scheme='http://www.blogger.com/atom/ns#' term='system'/><category scheme='http://www.blogger.com/atom/ns#' term='golang'/><category scheme='http://www.blogger.com/atom/ns#' term='language'/><title type='text'>Go language</title><content type='html'>In the galaxy of languages, it is always hard to choose one ; we can take a widely spread general purpose language like Java for instance, or a domain specific language like SQL. We usually choose both in many cases.&lt;br /&gt;Go language has been developped by Google to be a system oriented programming language, even if it has IMO the ability to be a general purpose programming language . The principles which have conducted to its elaboration are :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;simplicity&lt;/li&gt;&lt;li&gt;efficiency&lt;/li&gt;&lt;li&gt;safety&lt;br /&gt;&lt;/li&gt;&lt;li&gt;quick compilation time&lt;/li&gt;&lt;li&gt;ubiquity&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Each time we need very high efficiency, we need to go at lowest level as possible wrt to the time we have to develop the application. Very often, C or C++ are chosen for this purpose, even if they need very high skilled developpers to handle the complexity we have to face if we don't want to have serious problems later.&lt;br /&gt;Go (golang) is one of the language which may replace C or C++ in a near future because of combining efficiency, safety  and simplicity. It also introduces some very noticeable features like goroutines and channels which may highly  simplify the multi-thread development task.&lt;br /&gt;Up to now, Go lacks mainly of IDE and debugger to help writing very large scale applications.  It lacks also the ability to load dynamic libraries but it is a question of time. But the language itself and its compiler(s) are very robust and already ready for developping mature software.&lt;br /&gt;Here are some useful pointers for Go :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://golang.org/"&gt;golang&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://go-lang.cat-v.org/"&gt;go resources&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://cheesesun.blogspot.com/2009/12/basic-cgo.html"&gt;calling C from go&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://cheesesun.blogspot.com/2010/04/callbacks-in-cgo.html"&gt;go callbacks in go&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://go-lang.cat-v.org/text-editors/"&gt;IDE supports&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://gohelp.wordpress.com/"&gt;Gedit&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.mikeparr.info/go.html"&gt;Gogo editor&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/nefarious-ide/"&gt;Nefarious eclipse&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/go/wiki/WindowsPort"&gt;Windows port&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.reddit.com/r/golang/"&gt;reddit/golang&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://go-lang.cat-v.org/go-search"&gt;Go search engine&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/log4go/"&gt;log4go &lt;/a&gt;(interesting especially until a debugger is not provided)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;To conclude, the little I see and experienced with Go pleases me a lot ; I'm very confident in its future, and probably its adoption by me for specific low level tasks.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7081216924330892658-945414049932166709?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/945414049932166709/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=945414049932166709' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/945414049932166709'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/945414049932166709'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2010/05/go-language.html' title='Go language'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-7050948598673594611</id><published>2009-07-15T06:43:00.003+02:00</published><updated>2009-07-15T06:46:45.723+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gwt'/><title type='text'>GWT 1.7 out</title><content type='html'>It was quite surprising to me to discover this morning the V1.7 of GWT.&lt;br /&gt;Here is the &lt;a href="http://code.google.com/intl/fr/webtoolkit/download.html"&gt;download link&lt;/a&gt;.&lt;br /&gt;The release note says :&lt;br /&gt;&lt;span style="font-style: italic;"&gt;"(...)adds explicit support for Internet Explorer 8, Firefox 3.5, and Safari 4 as well as a few high-priority bug fixes. In all other respects, it is very similar to GWT 1.6. Note, however, that this release is version 1.7 rather than version 1.6.5 to signify a potentially breaking change for libraries that use deferred binding to specialize code based on user agent (see the next section for technical details)."&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7081216924330892658-7050948598673594611?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/7050948598673594611/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=7050948598673594611' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/7050948598673594611'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/7050948598673594611'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2009/07/gwt-17-out.html' title='GWT 1.7 out'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-8117113481481087828</id><published>2009-07-08T18:56:00.004+02:00</published><updated>2009-07-08T19:13:13.514+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='language'/><title type='text'>Scala, a nice language</title><content type='html'>In the universe of development languages, it is very difficult to choose one especially...because it depends on the kind of software you want to develop in one side, and the environmental constraints on the other part. For efficiency, C is still (when well programmed) on the top. For general purpose applications, java or c# are good. For web development on the browser, javascript is almost  mandatory, and so on... So the philosophical stone is not yet to be reached.&lt;br /&gt;Nevertheless, I took a glance on &lt;a href="http://www.scala-lang.org/"&gt;Scala &lt;/a&gt;few months ago, and I have found it very interesting, concise, agile, and efficient. The learning curve is also quick to learn. Another point is the ability to mix java and scala, and the most important is the disponibility of an &lt;a href="http://www.scala-lang.org/node/94"&gt;eclipse plugin&lt;/a&gt; for developping efficiently... So why not using Scala as well?&lt;br /&gt;An &lt;a href="https://mail.google.com/mail/?zx=1ol1eiib1l4b5&amp;amp;shva=1#inbox/1225af721438cd9d"&gt;interesting article&lt;/a&gt; from James Strachan, the creator of Groovy about Scala. At the beginning, I was quite fan of Groovy, but personnaly I think syntax and concepts have evolved in a too complex manner... even if Groovy has powerful features which may match some areas like specific domain languages or metaprogramming.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7081216924330892658-8117113481481087828?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/8117113481481087828/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=8117113481481087828' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/8117113481481087828'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/8117113481481087828'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2009/07/scala-nice-language.html' title='Scala, a nice language'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-5048908197631116144</id><published>2009-06-29T15:09:00.005+02:00</published><updated>2009-06-29T15:53:07.349+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='frameworks'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><title type='text'>Dalvik request</title><content type='html'>Dalvik seems really interesting to me, even out of the Android platform... It is really an intermediate way between simple VM-based applications and compiled ones.&lt;br /&gt;So I certainly would want it as a standalone technology which would be used as a production platform.&lt;br /&gt;My request now would be to have OSGI running on it.. There is an &lt;a href="http://www.osgi.org/blog/2007/11/android-and-osgi.html"&gt;interesting article&lt;/a&gt; about this I enjoy you to read.&lt;br /&gt;A last news : &lt;a href="http://android-developers.blogspot.com/"&gt;NDK &lt;/a&gt;is avaliable to download. NDK means Native Development Toolkit and enables to use C/C++ code with the Dalvik virtual machine.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7081216924330892658-5048908197631116144?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/5048908197631116144/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=5048908197631116144' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/5048908197631116144'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/5048908197631116144'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2009/06/dalvik-request.html' title='Dalvik request'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-1103007481885642885</id><published>2009-06-21T07:49:00.004+02:00</published><updated>2009-06-21T08:08:24.821+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='architecture'/><category scheme='http://www.blogger.com/atom/ns#' term='technologies'/><category scheme='http://www.blogger.com/atom/ns#' term='language'/><title type='text'>Dalvik, running java efficiently</title><content type='html'>The story of virtual machines is beginning to be quite long ; Smalltalk, Lisp, Java, dotNet, ... The idea behind these were to be able to write once and deploy everywhere. In the case of Smalltalk, it was even a step further by including the concept of "image" which is actually a kind of object oriented database.&lt;br /&gt;The drawback of these approaches is mainly the lack of performance, even if many, many improvements has been made to ensure execution celerity (hotspot for instance)... But the constatation is in front of our eyes : eclipse is still a big processor and memory consummer, microsoft doesn't still write its main applications in dotNet, and so on...&lt;br /&gt;One of the avantage of using VM is that the developper can develop quicker and safer (no more memory leaks for instance). We could easily continue to develop this way but by adding a compilation step we could ensure efficiency. It is what &lt;a href="http://www.excelsior-usa.com/jet.html"&gt;Excelsior &lt;/a&gt;proposes, but also &lt;a href="http://www.is2t.com/en/technology-icetea.php"&gt;IS2T &lt;/a&gt;with their Icetea technology.&lt;br /&gt;Google followed the same way by providing the &lt;a href="http://en.wikipedia.org/wiki/Dalvik_virtual_machine"&gt;Dalvik&lt;/a&gt; technology, ie a VM running .dex files directly got from java .class files. This new format is shorter, quicker, more memory efficient but has not just-in-time compiler. This VM enables Google to run java programs on &lt;a href="http://www.android.com/"&gt;Android &lt;/a&gt;efficiently, and also not to pay fees to Sun ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7081216924330892658-1103007481885642885?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/1103007481885642885/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=1103007481885642885' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/1103007481885642885'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/1103007481885642885'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2009/06/dalvik-running-java-efiiciently.html' title='Dalvik, running java efficiently'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-4637953352765229059</id><published>2009-04-08T08:58:00.003+02:00</published><updated>2009-04-08T09:15:19.882+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='frameworks'/><category scheme='http://www.blogger.com/atom/ns#' term='gwt'/><title type='text'>Google big knock</title><content type='html'>Google has gone a step forward yesterday by providing us yesterday with three main technology pepites, ie the delivery of GWT 1.6, the GWT eclipse pluggin working with it, and the App engine for java (up to now we have had App engine for Python).&lt;br /&gt;With these three corner stones, Google is able to offer to developpers a complete framework for developping free or commercial solutions without having to think about the server performance, the data recovery, the deployement headaches, and so on... or just to make quickly mockups.&lt;br /&gt;You can find further informations here :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/google-web-toolkit/"&gt;GWT 1.6&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://code.google.com/eclipse/"&gt;GWT eclipse plugin&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://code.google.com/appengine/docs/java/overview.html"&gt;App engine for java&lt;/a&gt;&lt;br /&gt;&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/7081216924330892658-4637953352765229059?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/4637953352765229059/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=4637953352765229059' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/4637953352765229059'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/4637953352765229059'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2009/04/google-big-knock.html' title='Google big knock'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-2484933230568202730</id><published>2009-04-06T09:12:00.004+02:00</published><updated>2009-04-06T10:45:43.178+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gwt'/><title type='text'>GWT 1.6 RC2 available</title><content type='html'>The second release candidate of GWT1.6 is out and can be downloaded here :&lt;br /&gt;&lt;br /&gt;"&lt;span style="font-style: italic;"&gt;The GWT team is happy to announce the availability of Google Web Toolkit 1.6 &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt; RC2.  Download it here: &lt;/span&gt;&lt;br /&gt; &lt;p style="font-style: italic;"&gt;&lt;a target="_blank" rel="nofollow" href="http://code.google.com/p/google-web-toolkit/downloads/list?q=1.6.3"&gt;http://code.google.com/p/google-web-toolkit/downloads/list?q=1.6.3&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="font-style: italic;"&gt;For an overview of the new features in 1.6, please see the announcement:&lt;br /&gt;&lt;/p&gt;&lt;p style="font-style: italic;"&gt;&lt;a target="_blank" rel="nofollow" href="http://googlewebtoolkit.blogspot.com/2009/03/google-web-toolkit-16-rc2-now-available.html"&gt;http://googlewebtoolkit.blogspot.com/2009/03/google-web-toolkit-16-rc...&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="font-style: italic;"&gt;The only real difference from RC1 should be some fixes I made for the hosted&lt;br /&gt;mode Jetty configuration issues that were reported with RC1:&lt;br /&gt;&lt;/p&gt;&lt;p style="font-style: italic;"&gt;&lt;a target="_blank" rel="nofollow" href="http://code.google.com/p/google-web-toolkit/issues/list?can=2&amp;amp;q=milestone:1_6_RC2+status:Fixed,FixedNotReleased"&gt;http://code.google.com/p/google-web-toolkit/issues/list?can=2&amp;amp;q=miles...&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;span style="font-style: italic;"&gt;--Scott, on behalf of the GWT team &lt;/span&gt;"&lt;br /&gt;&lt;br /&gt;We have just from now to wait for  the conformance  of external tools and libraries to work on it :-( .&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7081216924330892658-2484933230568202730?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/2484933230568202730/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=2484933230568202730' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/2484933230568202730'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/2484933230568202730'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2009/04/gwt-16-rc2-available.html' title='GWT 1.6 RC2 available'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-2066637026453707158</id><published>2009-03-07T03:26:00.002+01:00</published><updated>2009-03-07T03:34:02.340+01:00</updated><title type='text'>Flex is declared as "strong prositive" by Gartner</title><content type='html'>I'm personaly fond of GWT, but I  read on an IT magazine yesterday that according to Gartners, GWT (and also JFX) were only declared "promising"... Silverlight, Laszlo, and several JS libraries were "positive" technologies....&lt;br /&gt;It is obviously only a comment from one the most known consulting cabinet...but it makes us thinking of the fundaments of our "faith" in such or such technology... In fine we never must be a "ialatollah" of a technology, but still continuing to look around us and choose a language, a framework, a libray, a pattern, ..., only according to the context in which we have to make a decision.&lt;br /&gt;The equation is each time different, and unknown values/constants too.&lt;br /&gt;Actually, why not Flex or AIR instead of GWT....according to the context?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7081216924330892658-2066637026453707158?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/2066637026453707158/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=2066637026453707158' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/2066637026453707158'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/2066637026453707158'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2009/03/flex-is-declared-as-strong-prositive-by.html' title='Flex is declared as &quot;strong prositive&quot; by Gartner'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-1686249102287776883</id><published>2009-02-08T08:42:00.007+01:00</published><updated>2009-03-07T03:35:36.540+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gwt'/><title type='text'>GWT 1.6M1 and M2 released</title><content type='html'>GWT 1.6 Milestone 1 and 2 are out. The annoucement thread is available &lt;a href="http://groups.google.com/group/Google-Web-Toolkit/browse_thread/thread/3e7e6cc3b35ad98a?pli=1"&gt;here&lt;/a&gt;. You will find soon a description of the new features &lt;a href="http://code.google.com/intl/fr/docreader/#p=google-web-toolkit-doc-1-6&amp;amp;s=google-web-toolkit-doc-1-6&amp;amp;t=google-web-toolkit-doc-1-6"&gt;here&lt;/a&gt;. The link for &lt;a href="http://code.google.com/p/google-web-toolkit/downloads/list?can=1&amp;amp;q=1.6.0"&gt;download&lt;/a&gt;.&lt;br /&gt;Main new features :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;New Project Structure like the .war one&lt;br /&gt;&lt;/li&gt;&lt;li&gt; Hosted Mode Enhancements (use of jetty instead of tomcat)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;New EventHandler System (generalized Handler system for every widgets)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;New Widgets (DatePicker,LazyPanel)&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;On another subject, you also may take a glance on the &lt;a href="http://googlewebtoolkit.blogspot.com/"&gt;GWT blog&lt;/a&gt; to see that Google library for GWT has been updated.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7081216924330892658-1686249102287776883?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/1686249102287776883/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=1686249102287776883' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/1686249102287776883'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/1686249102287776883'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2009/02/gwt-16m1-released.html' title='GWT 1.6M1 and M2 released'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-9107025229529342257</id><published>2008-12-15T21:41:00.004+01:00</published><updated>2008-12-15T22:10:21.261+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='language'/><title type='text'>Java 7</title><content type='html'>Java7 is on the road ; it is not yet officially  available but can be nevertheless dowloaded &lt;a href="https://jdk7.dev.java.net/"&gt;here&lt;/a&gt;.&lt;br /&gt;Here is a sum-up of the embedded &lt;span style="font-style: italic;"&gt;libraries &lt;/span&gt;in this version :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;h5&gt;Modularity (superpackages and Java Module System)&lt;br /&gt;&lt;/h5&gt;&lt;/li&gt;&lt;li&gt;&lt;h5&gt;NIO2 , enhancing the NIO channels&lt;br /&gt;&lt;/h5&gt;&lt;/li&gt;&lt;li&gt;&lt;h5&gt;Units and Quantites&lt;/h5&gt;&lt;/li&gt;&lt;li&gt;&lt;h5&gt;Date and Time API&lt;/h5&gt;&lt;/li&gt;&lt;li&gt;&lt;h5&gt;Cache API&lt;/h5&gt;&lt;/li&gt;&lt;li&gt;&lt;h5&gt;Concurrence&lt;/h5&gt;&lt;/li&gt;&lt;li&gt;&lt;h5&gt;XQuery API&lt;/h5&gt;&lt;/li&gt;&lt;li&gt;&lt;h5&gt;Resources consumption management&lt;/h5&gt;&lt;/li&gt;&lt;li&gt;&lt;h5&gt;Swing Application framework&lt;/h5&gt;&lt;/li&gt;&lt;li&gt;&lt;h5&gt;Beans Binding  and Beans Validation&lt;/h5&gt;&lt;/li&gt;&lt;li&gt;&lt;h5&gt;Java Media Components&lt;/h5&gt;&lt;/li&gt;&lt;li&gt;&lt;h5&gt;JMX 2.0 and  web services connectors for JMX&lt;/h5&gt;&lt;/li&gt;&lt;/ul&gt;Along these libraries, the long awaited Block closure feature should also appear. Such a feature could be useful to build DSL like Linq for Java for instance, or groovy-like builders.&lt;br /&gt;&lt;br /&gt;For the ones who want already use closures, you can go &lt;a href="http://www.javac.info/"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7081216924330892658-9107025229529342257?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/9107025229529342257/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=9107025229529342257' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/9107025229529342257'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/9107025229529342257'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2008/12/java-7.html' title='Java 7'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-4320221828866563790</id><published>2008-12-15T21:36:00.001+01:00</published><updated>2008-12-15T21:38:28.982+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='architecture'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><title type='text'>HTTPS with Restlets</title><content type='html'>A new chapter of the Restlets tutorial is just coming to world : how to use &lt;a href="http://wiki.restlet.org/docs_1.1/13-restlet/27-restlet/46-restlet/213-restlet.html"&gt;HTTPS with Restlets&lt;/a&gt;.&lt;br /&gt;Interesting and useful.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7081216924330892658-4320221828866563790?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/4320221828866563790/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=4320221828866563790' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/4320221828866563790'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/4320221828866563790'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2008/12/https-with-restlets.html' title='HTTPS with Restlets'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-1700761466774829697</id><published>2008-12-12T10:38:00.004+01:00</published><updated>2008-12-13T07:05:00.340+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gwt'/><title type='text'>GWT 1.6 Roadmap</title><content type='html'>Good news ; &lt;a href="http://googlewebtoolkit.blogspot.com/2008/12/whats-ahead-for-google-web-toolkit_10.html"&gt;GWT 1.6&lt;/a&gt; will be available for use in at most 3 months. Among the new features or improvements, we can notice the introduction of new events handlers instead of listeners (deprecated in the next version). We will have then a finer grain of beheviour on widgets.&lt;br /&gt;But the post 1.6 features are very appealing ;) like :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;UI declarative format&lt;/li&gt;&lt;li&gt;Developer Guided Code splitting&lt;/li&gt;&lt;li&gt;Client Bundle&lt;/li&gt;&lt;/ul&gt;GWT is beginning to become quite mature and powerful.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7081216924330892658-1700761466774829697?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/1700761466774829697/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=1700761466774829697' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/1700761466774829697'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/1700761466774829697'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2008/12/gwt-16-roadmap.html' title='GWT 1.6 Roadmap'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-725681862367017974</id><published>2008-12-11T13:23:00.004+01:00</published><updated>2008-12-11T13:31:28.422+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='frameworks'/><category scheme='http://www.blogger.com/atom/ns#' term='OS'/><category scheme='http://www.blogger.com/atom/ns#' term='technologies'/><title type='text'>Google Native Client</title><content type='html'>Google continues to walk on the flower-bed of Microsoft, Adobe and Sun by providing regularly technologies to render it auto-suffisient and universal.&lt;br /&gt;Google has just published the first development version of &lt;a href="http://code.google.com/p/nativeclient/"&gt;Google Native Client&lt;/a&gt;. As said by Google, "&lt;a name="Native_Client"&gt;Native Client is an open-source research technology for running x86 native code in web applications, with the goal of maintaining the browser neutrality, OS portability, and safety that people expect from web apps. We've released this project at an early, research stage to get feedback from the security and broader open-source communities. We believe that Native Client technology will someday help web developers to create richer and more dynamic browser-based applications."&lt;br /&gt;With GWT, Android, Chrome, Ad-sens, ..., Google is going a step ahead...&lt;br /&gt;The FAQ gives further information about this technology.&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/7081216924330892658-725681862367017974?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/725681862367017974/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=725681862367017974' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/725681862367017974'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/725681862367017974'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2008/12/google-native-client.html' title='Google Native Client'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-5335661462630035840</id><published>2008-12-10T13:49:00.005+01:00</published><updated>2008-12-11T13:28:29.219+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='frameworks'/><category scheme='http://www.blogger.com/atom/ns#' term='ORM'/><title type='text'>SimpleORM</title><content type='html'>In the galaxy of the ORM frameworks along Hibernate, Ibatis, Toplink, JPA, JDO, and so on..., it exists a simple ORM framework initiated by Anthony Berglas, ie &lt;a href="http://www.simpleorm.org/"&gt;SimpleORM&lt;/a&gt;. I've tried in former post to reach the same goal with Femtorm, but I've not had time to terminate it. SimpleORM may be seen I think.&lt;br /&gt;The &lt;a href="http://www.simpleorm.org/sorm/whitepaper.html"&gt;tutorial&lt;/a&gt;.&lt;br /&gt;An &lt;a href="http://www.simpleorm.org/SimpleWebApp-Overview/SimpleWebApp-Overview.html"&gt;example&lt;/a&gt;.&lt;br /&gt;The &lt;a href="http://sourceforge.net/projects/simpleorm"&gt;sourceforge &lt;/a&gt;site.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7081216924330892658-5335661462630035840?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/5335661462630035840/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=5335661462630035840' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/5335661462630035840'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/5335661462630035840'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2008/12/simpleorm.html' title='SimpleORM'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-6868790579745932524</id><published>2008-12-08T18:06:00.002+01:00</published><updated>2008-12-08T18:10:44.113+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='architecture'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><title type='text'>JSecurity 0.9 out</title><content type='html'>&lt;a href="http://www.jsecurity.org"&gt;JSecurity &lt;/a&gt;is a java library developped in order to simplify authentication, authorization and cryptography when a client  communicates with a server. It seems quite easy to use, even if it lacks a lot of samples. Someone on the restlet mailing list has emitted the idea to adapt Jsecurity with restlets. I'm waiting for discussions on this subject to have a better understanding on the techno. But it seems promising nevertheless.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7081216924330892658-6868790579745932524?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/6868790579745932524/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=6868790579745932524' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/6868790579745932524'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/6868790579745932524'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2008/12/jsecurity-09-out.html' title='JSecurity 0.9 out'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-8249879457903166566</id><published>2008-12-08T08:04:00.003+01:00</published><updated>2008-12-08T08:08:54.109+01:00</updated><title type='text'>Next eclipse train will be named Galileo</title><content type='html'>After Calypso, Europa, and Ganymede, Eclipse trains start a new theme by using the &lt;a href="http://wiki.eclipse.org/Galileo_Simultaneous_Release"&gt;Galileo name&lt;/a&gt; for this project bundle release.  Planet satellites were observed ; from now we have an observer. Eclipse is really getting the unction of the market.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7081216924330892658-8249879457903166566?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/8249879457903166566/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=8249879457903166566' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/8249879457903166566'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/8249879457903166566'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2008/12/next-eclipse-train-will-be-named.html' title='Next eclipse train will be named Galileo'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-448935026497876251</id><published>2008-12-05T23:05:00.002+01:00</published><updated>2008-12-05T23:08:45.443+01:00</updated><title type='text'>DB4O becomes Servo after being sold to Versant</title><content type='html'>A page is turned for DB4O, the famous open source OODB we already spoke about. DB4O has been sold to versant and renamed to Servo... Here is the &lt;a href="http://getservo.com/open/Press.aspx"&gt;anouncement letter&lt;/a&gt;.&lt;br /&gt;Is it a good or bad news? I don't know... We'll actually se that in the next months.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7081216924330892658-448935026497876251?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/448935026497876251/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=448935026497876251' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/448935026497876251'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/448935026497876251'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2008/12/db4o-becomes-servo-after-being-sold-to.html' title='DB4O becomes Servo after being sold to Versant'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-7330787811896954836</id><published>2008-11-29T11:40:00.004+01:00</published><updated>2008-11-29T11:48:16.578+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='architecture'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>Eclipse E4 incubator</title><content type='html'>Eclipse Ganymede is delivered and widely used.... But what is the future of Eclipse? With Ganymede we reached a point where adding functionnalities would not be enough to confront the future. This future which is already the present is a mix of old and new technologies, ie desktop applications, RCP applications, Light client applications, RIA applications, and so on...&lt;br /&gt;We need from now an unified model enabling with a single paradigm to reach all the goals behind all these technologies. I think that Eclipse could try to achieve this target because of all the underlying technologies used into Eclipse like OSGI, good programming model, the community, ...&lt;br /&gt;It is maybe also the goal that Eclipse 4, E4 for short, will have to take into account.&lt;br /&gt;For this purpose, an incubator project has been initiated, whose the roadmap is &lt;a href="http://www.eclipse.org/proposals/e4/"&gt;the following&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7081216924330892658-7330787811896954836?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/7330787811896954836/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=7330787811896954836' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/7330787811896954836'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/7330787811896954836'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2008/11/eclipse-e4-incubator.html' title='Eclipse E4 incubator'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-8668771076804706595</id><published>2008-11-19T11:58:00.002+01:00</published><updated>2008-11-19T12:05:03.849+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='libraries'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>Google Protocol buffers</title><content type='html'>We used to use xml or even json formats to exchange data through the network. It is standard, self-describing, well known by many people, and may even be defined by non-technical people.&lt;br /&gt;When we need performances or even more security, we have to to find more efficient ways to exchange data. We could for instance use the object serialization of GWT for achieving this goal.&lt;br /&gt;You also could use the &lt;a href="http://code.google.com/apis/protocolbuffers/docs/overview.html"&gt;Protocol buffer&lt;/a&gt; library developped by Google for C++, Java, C# or python.&lt;br /&gt;This library is already used massively by Google itself.&lt;br /&gt;The goal is to translate textual data into binary ones, and to simplify the way data are stored for accelerating compression/uncompression (Mashalling/unmarshalling).&lt;br /&gt;I enjoin you to have a look on this library.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7081216924330892658-8668771076804706595?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/8668771076804706595/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=8668771076804706595' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/8668771076804706595'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/8668771076804706595'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2008/11/google-protocol-buffers.html' title='Google Protocol buffers'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-558072667551385394</id><published>2008-11-18T10:34:00.003+01:00</published><updated>2008-11-18T10:48:44.615+01:00</updated><title type='text'>SmartGWT first beta</title><content type='html'>Sanjiv is well known as the guy who initiated the GWT-ext wrapper above the famous ext-js Ajax library. After the change of licence of ext-js from open source to commercial one, Sanjiv smashed the door to begin a new project based uppon the SmartClient Ajax library, which is and will still remain free for use... Having these evidence stated, Sanjiv started to develop the SmartGWT library for our best hapiness.&lt;br /&gt;I'm particularly likje in this library the ability to use the DataSources where the &lt;b&gt;FETCH&lt;/b&gt;, &lt;b&gt;ADD&lt;/b&gt;, &lt;b&gt;UPDATE&lt;/b&gt; and &lt;b&gt;REMOVE&lt;/b&gt; key operations are finally quite similar to the &lt;span style="font-weight: bold;"&gt;GET&lt;/span&gt;, &lt;span style="font-weight: bold;"&gt;POST&lt;/span&gt;, &lt;span style="font-weight: bold;"&gt;PUT &lt;/span&gt;and &lt;span style="font-weight: bold;"&gt;DELETE &lt;/span&gt;&lt;span style="font-style: italic;"&gt;REST &lt;/span&gt;operations. So if you choose to develop with GWT and Restlets for instance, SmartGWT could be the library you may have to choose for linking the client and the server. To be check with a real sample of course.&lt;br /&gt;Long life to this library!&lt;br /&gt;&lt;a href="http://code.google.com/p/smartgwt/"&gt;SmartGwt&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.smartclient.com/smartgwt/showcase/"&gt;Showcase&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.jroller.com/sjivan/entry/smartgwt_1_0_released"&gt;Sanjiv's blog&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7081216924330892658-558072667551385394?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/558072667551385394/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=558072667551385394' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/558072667551385394'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/558072667551385394'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2008/11/smartgwt-first-beta.html' title='SmartGWT first beta'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-4294411513486461151</id><published>2008-11-07T14:22:00.002+01:00</published><updated>2008-11-07T14:27:27.739+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='frameworks'/><category scheme='http://www.blogger.com/atom/ns#' term='libraries'/><category scheme='http://www.blogger.com/atom/ns#' term='language'/><title type='text'>Gldapo, the Groovy LDAP builder</title><content type='html'>For the ones who want to access &lt;a href="http://en.wikipedia.org/wiki/Lightweight_Directory_Access_Protocol"&gt;LDAP servers&lt;/a&gt; in a simpler manner than with &lt;a href="http://java.sun.com/products/jndi/"&gt;JNDI&lt;/a&gt;, you can use such libraries like &lt;a href="http://www.springsource.org/ldap"&gt;Spring ldap&lt;/a&gt; which enables the developper to access the server like a databse with jdbc.&lt;br /&gt;But if you want more, you also can try to use &lt;a href="http://gldapo.codehaus.org/index.html"&gt;Gldapo&lt;/a&gt;, the &lt;a href="http://groovy.codehaus.org/"&gt;Groovy &lt;/a&gt;builder created to access the LDAP server as POJO.&lt;br /&gt;Enjoy!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7081216924330892658-4294411513486461151?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/4294411513486461151/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=4294411513486461151' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/4294411513486461151'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/4294411513486461151'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2008/11/gldapo-groovy-ldap-builder.html' title='Gldapo, the Groovy LDAP builder'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-8231236888484739540</id><published>2008-11-06T08:16:00.003+01:00</published><updated>2008-11-06T08:38:43.260+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>GWT ressources</title><content type='html'>&lt;span style="font-style: italic;"&gt;VLC integration in GWT&lt;/span&gt;&lt;br /&gt;It can be nice to integrate video in GWT vthrough VLC, the famous video/audio platform.&lt;br /&gt;&lt;a href="http://wiki.videolan.org/GWT"&gt;This tutoral&lt;/a&gt; explains ho to do this.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://docs.codehaus.org/display/JETTY/GWT"&gt;Jetty and GWT&lt;/a&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;"The Google Web Toolkit allows Ajax applications to be developed in java code using the traditional UI widget paradigm. The toolkit includes support for RPC, but not for comet style Ajax push.&lt;/span&gt;  &lt;p style="font-style: italic;"&gt;Unfortunately GWT has not made it easy to use continuations within their RPC mechanism. Firstly they catch Throwable, so the Jetty RetryException is caught. Secondly they have made most of the methods on the GWT servlet final, so you cannot fix this by extension...."&lt;/p&gt;&lt;p&gt;&lt;a href="http://code.google.com/p/gwt-examples/"&gt;GWT-Examples&lt;/a&gt;&lt;/p&gt;&lt;p style="font-style: italic;"&gt;&lt;a name="Summary"&gt;"Example Eclipse Google Web Toolkit projects. These projects are working examples and have been tested before releasing them."&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/7081216924330892658-8231236888484739540?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/8231236888484739540/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=8231236888484739540' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/8231236888484739540'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/8231236888484739540'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2008/11/vlc-integration-in-gwt.html' title='GWT ressources'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-5535061640340029928</id><published>2008-11-05T08:47:00.004+01:00</published><updated>2008-11-07T14:34:36.385+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='frameworks'/><category scheme='http://www.blogger.com/atom/ns#' term='architecture'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>PureMVC Pipes</title><content type='html'>We've spoken previously about &lt;a href="http://puremvc.org/"&gt;PureMVC&lt;/a&gt;, and especially its declination into &lt;a href="http://code.google.com/p/purevmc4gwt/"&gt;GWT&lt;/a&gt;.&lt;br /&gt;It exists an extension to PureMVC which is Called PureMVC Pipes...but it lacks some examples and tutorial about this. You can find &lt;a href="http://www.joshuaostrom.com/2008/06/15/understanding-puremvc-pipes/"&gt;here &lt;/a&gt;a good tutorial explaining what the purpose is.&lt;br /&gt;Nevertheles, PureMVC may already be "complex" to use ; pipes don't simplify it :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7081216924330892658-5535061640340029928?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/5535061640340029928/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=5535061640340029928' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/5535061640340029928'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/5535061640340029928'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2008/11/puremvc-pipes.html' title='PureMVC Pipes'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-7563112993568932253</id><published>2008-10-31T16:41:00.002+01:00</published><updated>2008-10-31T16:45:12.047+01:00</updated><title type='text'>OpenQA Bromine</title><content type='html'>&lt;a href="http://bromine.openqa.org/"&gt;OpenQA Bromine&lt;/a&gt; is an open source requirement capturing and validation test engine. It can also be used in conjunction with Selenium.&lt;br /&gt;As the web site says :&lt;br /&gt;&lt;div style="width: 520px;"&gt;             &lt;div style="position: relative; top: 40px; left: 60px; width: 250px;"&gt;               &lt;h3 style="background-color: rgb(178, 207, 66); font-size: 12px;"&gt;Selenium does the technical stuff&lt;/h3&gt;               &lt;ul&gt;&lt;li&gt;Create tests with &lt;a href="http://bromine.openqa.org/img/selenium-ide.png" rel="lightbox"&gt;IDE&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Provide &lt;a href="http://bromine.openqa.org/img/code.png" rel="lightbox"&gt;JS framework&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Provide &lt;a href="http://bromine.openqa.org/img/selenium-rc.png" rel="lightbox"&gt;RC server&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Provide &lt;a href="http://bromine.openqa.org/img/start.png" rel="lightbox"&gt;Core runner&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;             &lt;/div&gt;             &lt;div style="position: relative; left: 250px; width: 250px;"&gt;               &lt;h3 style="background-color: rgb(178, 207, 66); font-size: 12px;"&gt;Bromine makes it humanly usable.&lt;/h3&gt;               &lt;ul&gt;&lt;li&gt;Fully fledged QA tool&lt;/li&gt;&lt;li&gt;Create projects&lt;/li&gt;&lt;li&gt;Bind requirements to projects&lt;/li&gt;&lt;li&gt;Bind tests to requirements&lt;/li&gt;&lt;li&gt;Organize and run tests easily&lt;/li&gt;&lt;li&gt;View and analyse your test results&lt;/li&gt;&lt;li&gt;Create defects&lt;/li&gt;&lt;/ul&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/7081216924330892658-7563112993568932253?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/7563112993568932253/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=7563112993568932253' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/7563112993568932253'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/7563112993568932253'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2008/10/openqa-bromine.html' title='OpenQA Bromine'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-1816219713541079872</id><published>2008-10-31T08:54:00.018+01:00</published><updated>2008-10-31T10:59:41.832+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gwt'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>GWT libraries news</title><content type='html'>&lt;ul&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/ofcgwt/"&gt;OFCGWT &lt;/a&gt;is a gwt library over OpenFlashChart2 enabling developpers to display very nice charts in flash while continuing programming in java, and especially with GWT.A demo can be found &lt;a href="http://ofcgwt.googlecode.com/svn/demo/test.html"&gt;here&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;&lt;a name="GWT_Mosaic" href="http://code.google.com/p/gwt-mosaic/"&gt;GWT Mosaic &lt;/a&gt;is a highly usable, feature rich toolkit for creating Rich Internet Applications and an easy to use API. &lt;/li&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/gwt-rolodex/"&gt;gwt-rolodex&lt;/a&gt; : &lt;a id="Summary"&gt;displays a stack of images that you can flick through like a rolodex or a card deck&lt;/a&gt;&lt;/li&gt;&lt;li&gt;The &lt;a href="http://code.google.com/p/ftr-gwt-library/"&gt;FT-GWT-Library&lt;/a&gt; 0.9.6 realease  is also nearly out. The Calendar widget is espceially useful and nice.&lt;/li&gt;&lt;li&gt;The &lt;a href="http://code.google.com/p/cobogw/"&gt;cobgw &lt;/a&gt;project offers some interesting widgets too.&lt;/li&gt;&lt;li&gt;The &lt;a href="http://demo.therandomhomepage.com/widgets/LightboxImage/"&gt;LightboxImage widget&lt;/a&gt; is a wrapper onto the lightbox.js library. It is nice.&lt;/li&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/gwt2swf/"&gt;GWT2SWF &lt;/a&gt;enables a flash component to communicate with GWT.&lt;/li&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/htmltemplatewidget/"&gt;htmltemplatewidget &lt;/a&gt;is a quite old project but can be interesting for some kinds of use where templating is needed.&lt;/li&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/gwt-dnd/"&gt;gwt-dnd&lt;/a&gt; is a library which can be used when we need to make drag and drop.&lt;/li&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/gwt-log/"&gt;gwt_log&lt;/a&gt; is useful for logging information when testing the application.&lt;/li&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/tatami/"&gt;tatami &lt;/a&gt;: gwt library over the dojo js framework&lt;/li&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/gwt-google-apis/"&gt;gwt-google-api&lt;/a&gt; : to access google applications through gwt&lt;/li&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/gwt-diagrams/"&gt;gwt-diagrams&lt;/a&gt; : to provide diagramming capabilities to gwt&lt;/li&gt;&lt;li&gt;&lt;a name="GWT_Mosaic" href="http://code.google.com/p/gwt-mosaic/"&gt;&lt;/a&gt;&lt;a href="http://code.google.com/p/gwt-ent/"&gt;gwt-ent&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/gwt-datepicker/"&gt;gwt-datepicker &lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/gwt-s3/"&gt;gwt-s3&lt;/a&gt; : allow applications to call Amazon S3 online storage services. &lt;/li&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/gwt-validation/"&gt;gwt-validation&lt;/a&gt; : for field validation&lt;/li&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/gwt-fabridge/"&gt;gwt-fabridge&lt;/a&gt; : allows scripting Flex and Flash files (swf) from javascript. gwt-fabridge wraps FABridge for GWT. It extends gwt2swf. &lt;/li&gt;&lt;/ul&gt;That's all for today!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7081216924330892658-1816219713541079872?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/1816219713541079872/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=1816219713541079872' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/1816219713541079872'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/1816219713541079872'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2008/10/ofcgwt-102-release-out.html' title='GWT libraries news'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-852899791980034164</id><published>2008-10-30T08:55:00.005+01:00</published><updated>2008-10-30T09:10:36.287+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='frameworks'/><category scheme='http://www.blogger.com/atom/ns#' term='architecture'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>RAP (Rich Ajax Plaform) 1.2M2</title><content type='html'>&lt;a href="http://www.eclipse.org/rap/about.php"&gt;RAP &lt;/a&gt;is a web development plaform based uppon Eclipse and enabling development in a &lt;a href="http://wiki.eclipse.org/index.php/Rich_Client_Platform"&gt;RCP &lt;/a&gt;(Rich Client Platform) manner, SWT being "only" replaced by &lt;a href="http://wiki.eclipse.org/WidgetToolkit"&gt;RWT &lt;/a&gt;for Rich Widget Toolkit.&lt;br /&gt;The concepts are really interesting and the architecture clever, based uppon server-side OSGI.&lt;br /&gt;I'm not confident by now on the performances of applications developped with RAP, especially on loading and stress tests. But the basis seems good, and could obviously be improved in the future. Personally I would like to see GWT used instead of/in conjunction with &lt;a href="http://qooxdoo.org/"&gt;qooxdoo&lt;/a&gt;, the js library used to implement RWT on the client side.&lt;br /&gt;Concerning Qooxdoo, it seems that a quite similar project to GWT is available for the framework : &lt;a href="http://qooxdoo.org/contrib/project/qwt"&gt;QWT&lt;/a&gt; for Qooxdoo widget toolkit.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7081216924330892658-852899791980034164?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/852899791980034164/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=852899791980034164' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/852899791980034164'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/852899791980034164'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2008/10/rap-rich-ajax-plaform-12m2.html' title='RAP (Rich Ajax Plaform) 1.2M2'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-3069994444220479806</id><published>2008-10-29T16:44:00.005+01:00</published><updated>2008-10-29T16:48:41.353+01:00</updated><title type='text'>OSGI on the server side</title><content type='html'>A quite old (9 month :-) ) article about OSGI on the server side :&lt;br /&gt;&lt;ul style="font-family: arial;"&gt;&lt;li&gt;&lt;a href="http://www.oracle.com/technology/pub/articles/dev2arch/2007/12/osgi-introduction.html"&gt;An Introduction to OSGi on the Server Side&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.oracle.com/technology/pub/articles/dev2arch/2007/12/osgi-introduction2.html"&gt;OSGi's working parts: Environment and bundles&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.oracle.com/technology/pub/articles/dev2arch/2007/12/osgi-introduction3.html"&gt;Running and Deploying an OSGi Application&lt;/a&gt;&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/7081216924330892658-3069994444220479806?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/3069994444220479806/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=3069994444220479806' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/3069994444220479806'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/3069994444220479806'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2008/10/osgi-on-server-side.html' title='OSGI on the server side'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-340032658692802070</id><published>2008-10-29T08:21:00.008+01:00</published><updated>2008-10-29T11:30:36.442+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='frameworks'/><category scheme='http://www.blogger.com/atom/ns#' term='architecture'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>Restlets 1.1.0 is out</title><content type='html'>Good news ; the &lt;a href="http://blog.noelios.com/2008/10/28/restlet-110-released/"&gt;1.1.0 version&lt;/a&gt; of the restlets framework is ready to &lt;a href="http://www.restlet.org/downloads/"&gt;download&lt;/a&gt;.&lt;br /&gt;Here a panel of the new features :"&lt;br /&gt;&lt;ul style="font-style: italic; font-family: times new roman;"&gt;&lt;li&gt;Broader and deeper HTTP support with features such as partial downloads, resumable uploads or content integrity validation.&lt;/li&gt;&lt;/ul&gt;&lt;ul style="font-style: italic; font-family: times new roman;"&gt;&lt;li&gt;Best support for the &lt;a href="https://wadl.dev.java.net/"&gt;WADL specification &lt;/a&gt;in the industry, allowing an automatic and always in sync documentation of your REST APIs. WADL documents can be generated in XML or converted on the fly to HTML using the popular stylesheet from Yahoo!&lt;/li&gt;&lt;li&gt;One of the first and most complete implementations of the new &lt;a href="http://jcp.org/aboutJava/communityprocess/final/jsr311/index.html"&gt;JAX-RS 1.0 specification&lt;/a&gt; provided for those preferring an annotation-oriented approach.&lt;/li&gt;&lt;li&gt;New &lt;a href="http://wiki.restlet.org/docs_1.1/13-restlet/144-restlet.html"&gt;Restlet-GWT module&lt;/a&gt; provided, porting the client-side of the Restlet API to the popular Google Web Toolkit 1.5 JavaScript platform, allowing you to invoke RESTful applications right from your Web browser.&lt;/li&gt;&lt;li&gt;New extensions for easier integration with the JAXB 2.1, JiBX 1.1, Spring 2.5, OAuth, &lt;a href="http://wiki.restlet.org/developers/172-restlet/124-restlet.html?branch=docs-1_1&amp;amp;language=en"&gt;OSGi&lt;/a&gt;, Oracle XDB and SSL technologies.&lt;/li&gt;&lt;li&gt;Improved support for &lt;a href="http://en.wikipedia.org/wiki/ATOM"&gt;Atom Syndication&lt;/a&gt; XML format and for Atom Publishing Protocol. Both formatting and parsing are now available.&lt;/li&gt;&lt;li&gt;New POP3 connector based on JavaMail to access RESTfully to remote mail boxes.&lt;/li&gt;&lt;li&gt;New &lt;a href="https://grizzly.dev.java.net/"&gt;Grizzly HTTP server&lt;/a&gt; connector, first to fully leverage the &lt;a href="http://en.wikipedia.org/wiki/New_I/O"&gt;NIO support&lt;/a&gt; in the Restlet API, leading to new levels of scalability and performance.&lt;/li&gt;&lt;li&gt;New internal HTTP client and server connectors to simplify development phases (zero configuration"&lt;/li&gt;&lt;/ul&gt;A &lt;a href="http://www.restlet.org/documentation/1.1/screencast/"&gt;screencast &lt;/a&gt;is available for discovering the framework.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7081216924330892658-340032658692802070?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/340032658692802070/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=340032658692802070' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/340032658692802070'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/340032658692802070'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2008/10/restlets-110-is-out.html' title='Restlets 1.1.0 is out'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-7501613369706168868</id><published>2008-10-28T14:22:00.010+01:00</published><updated>2008-10-28T14:43:48.196+01:00</updated><title type='text'>COMET architectural pattern</title><content type='html'>The world of distributed applications is constantly moving and new technologies or patterns are emerging. The COMET architectural pattern is a little bit like the REST one, ie a growing up technology for solving some kind of problematics, even if they are antithetic.&lt;br /&gt;Up to now, data and event flows are from the client to the server. So, if we have an application where many data are updated by several people, we have to make polling on the client side for catching change events and doing consequent actions.&lt;br /&gt;We've seen with frameworks like PureMVC and inversion control pattern, that it is quite better for an application to send events to the related components and to leave these components doing what they have to do when receiving  the dispatched events.&lt;br /&gt;COMET aims to solve this problem in distributed applications. Let's imagine that a user updated data from the client to the server. It could be convenient for the server to notify every browsers which are registered for these data that these ones have been updated, and then let the client side application decide what to do consequently.&lt;br /&gt;If you want to go further :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Comet_%28programming%29"&gt;Comet programming&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.caucho.com/resin/doc/resin-comet.xtp"&gt;Resin-Comet&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://simonwillison.net/2007/Dec/5/comet/"&gt;Comet works, and it's easier than you think&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://javascriptly.com/2008/09/comet-chat-app-meteor-server/"&gt;an example&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.javascriptr.com/2008/05/28/gwt-grizzly-comet/"&gt;using gwt and comet&lt;/a&gt;&lt;br /&gt;&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/7081216924330892658-7501613369706168868?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/7501613369706168868/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=7501613369706168868' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/7501613369706168868'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/7501613369706168868'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2008/10/comet-architectural-pattern.html' title='COMET architectural pattern'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-410984353726924113</id><published>2008-10-28T10:39:00.004+01:00</published><updated>2008-10-29T11:20:35.730+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='architecture'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><category scheme='http://www.blogger.com/atom/ns#' term='language'/><title type='text'>Smalltalk is going back</title><content type='html'>I've been fond of Smalltalk since 20 years but have not the occasion any more to develop with this great language/ide  :-(&lt;br /&gt;It seems that people after having tried java, c#, ruby, python, groovy, grails, ruby on rails,..., to solve their development problems reached conclusions that everything or almost was already  thought, designed 30 years ago with Smalltalk.&lt;br /&gt;Smalltalk is again in the front of door with &lt;a href="http://www.blogger.com/www.seaside.st/"&gt;Seaside&lt;/a&gt;, ther continuation framework firstly built in Squeak.&lt;br /&gt;An IBM internal project still focus on Smalltalk for adapting Smalltalk to the eclipse platform through the &lt;a href="http://www.ibm.com/developerworks/blogs/page/stdt"&gt;STDT project&lt;/a&gt;.&lt;br /&gt;I hope that Smalltalk will be back on the market, because it still the best architectured language ever.&lt;br /&gt;&lt;br /&gt;For information, below can be found a list of Smalltalk providers :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.cincomsmalltalk.com/userblogs/cincom/blogView"&gt;Cincom Smalltalk&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.instantiations.com/VAST/index.html"&gt;VisualAgeSmalltalk&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.object-arts.com/"&gt;DolphinSmalltalk&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.exept.de/en/home"&gt;Smalltalk/X&lt;/a&gt;&lt;/li&gt;&lt;li&gt;(old) &lt;a href="http://www.objectconnect.com/"&gt;Smalltalk MT&lt;/a&gt;&lt;/li&gt;&lt;li&gt;and of course &lt;a href="http://www.squeak.org/"&gt;Squeak&lt;/a&gt;&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/7081216924330892658-410984353726924113?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/410984353726924113/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=410984353726924113' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/410984353726924113'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/410984353726924113'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2008/10/smalltalk-is-going-back.html' title='Smalltalk is going back'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-7844071188299367126</id><published>2008-10-28T09:34:00.008+01:00</published><updated>2008-10-28T09:45:41.062+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='architecture'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>"Sun gives Java a REST"</title><content type='html'>This is the title of &lt;a href="http://www.sdtimes.com/SUN_GIVES_JAVA_A_REST/About_JAVA_and_REST_and_SUN/32959"&gt;an article on SDTimes&lt;/a&gt; I enjoin you to read.&lt;br /&gt;We've spoken about Restlets in previous posts ; you also can take a look to the &lt;a href="https://jersey.dev.java.net/"&gt;jersey project &lt;/a&gt;about REST implementation of the java JSR.&lt;br /&gt;You can also have a glance to this comparison of REST implementations &lt;a href="http://www.infoq.com/news/2008/10/jaxrs-comparison"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7081216924330892658-7844071188299367126?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/7844071188299367126/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=7844071188299367126' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/7844071188299367126'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/7844071188299367126'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2008/10/sun-gives-java-rest.html' title='&quot;Sun gives Java a REST&quot;'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-1177121935087536738</id><published>2008-10-27T09:46:00.005+01:00</published><updated>2008-10-27T11:40:23.732+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='collaborative development'/><category scheme='http://www.blogger.com/atom/ns#' term='methodology'/><title type='text'>IceScrum</title><content type='html'>IceTea Tonic is pleased to announce the latest milestone release of &lt;a href="http://www.icescrum.org/"&gt;IceScrum&lt;/a&gt;, a simple portal to manage Scrum projects. Simple and promising even if it still lacks of documentation and if there are some bugs.&lt;br /&gt;Knowledge of the&lt;a href="http://en.wikipedia.org/wiki/SCRUM"&gt; Scrum method&lt;/a&gt; is mandatory for using the tool, even if it is quite intuitive.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7081216924330892658-1177121935087536738?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/1177121935087536738/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=1177121935087536738' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/1177121935087536738'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/1177121935087536738'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2008/10/icescrum.html' title='IceScrum'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-8237954258672287641</id><published>2008-10-27T06:55:00.009+01:00</published><updated>2008-10-27T14:45:59.984+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='collaborative development'/><category scheme='http://www.blogger.com/atom/ns#' term='software engineering'/><category scheme='http://www.blogger.com/atom/ns#' term='SCM'/><title type='text'>Hudson, a continuous build tool</title><content type='html'>Software configuration management(SCM) is the corner stone of every good software development. SCM is a generic term which includes Source managements (CVS, SVN, Mercurial, ...), issue management (Mantis, Bugzilla, Jira, ...), CMS for the documentation management (Joomla, Drupal, ...), version management through the use of methods (scrum, xp, ...), and finally build management, ie the ability to generate automatically production ready software from the source. It is especially needed when development is test-driven, or continuous-build-driven.&lt;br /&gt;To perform this goal we have many possibilities :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;hand-written scripts in whatever language&lt;/li&gt;&lt;li&gt;use of &lt;a href="http://ant.apache.org/"&gt;ANT&lt;/a&gt;, &lt;a href="http://gant.codehaus.org/"&gt;GANT&lt;/a&gt;, &lt;a href="http://maven.apache.org/"&gt;Maven&lt;/a&gt;, ...&lt;/li&gt;&lt;li&gt;use of continuous build dedicated tools like &lt;a href="http://continuum.apache.org/"&gt;Continuum&lt;/a&gt;, &lt;a href="http://luntbuild.javaforge.com/"&gt;Luntbuild&lt;/a&gt;, &lt;a href="http://cruisecontrol.sourceforge.net/"&gt;CruiseControl&lt;/a&gt; ; these tools generally use the previous possibilities to perform the builds.&lt;a href="http://cruisecontrol.sourceforge.net/"&gt;&lt;br /&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;A quite new project has emerged this year : &lt;a href="https://hudson.dev.java.net/"&gt;Hudson&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;As the introduction says : "&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;Hudson monitors executions of repeated jobs, such as building a software project or jobs run by cron. Among those things, current Hudson focuses on the following two jobs:&lt;/span&gt;&lt;/span&gt; &lt;ol&gt;&lt;li  style="font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;Building/testing software projects continuously&lt;/b&gt;, just like CruiseControl or DamageControl. In a nutshell, Hudson provides an easy-to-use so-called continuous integration system, making it easier for developers to integrate changes to the project, and making it easier for users to obtain a fresh build. The automated, continuous build increases the productivity.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;&lt;b style="font-family: courier new;"&gt;Monitoring executions of externally-run jobs&lt;/b&gt;&lt;span style="font-family:courier new;"&gt;, such as cron jobs and procmail jobs, even those that are run on a remote machine. For example, with cron, all you receive is regular e-mails that capture the output, and it is up to you to look at them diligently and notice when it broke. Hudson keeps those outputs and makes it easy for you to notice when something is wrong.&lt;/span&gt;&lt;/span&gt;"&lt;/li&gt;&lt;/ol&gt;See the &lt;a href="http://hudson.gotdns.com/wiki/display/HUDSON/HudsonDemo"&gt;demo videos&lt;/a&gt;.&lt;br /&gt;For french readers, a good tutorial is available &lt;a href="http://linsolas.developpez.com/articles/hudson/"&gt;here&lt;/a&gt;.&lt;br /&gt;It also exists an &lt;a href="http://code.google.com/p/hudson-eclipse/"&gt;eclipse plugin&lt;/a&gt; for Hudson.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7081216924330892658-8237954258672287641?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/8237954258672287641/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=8237954258672287641' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/8237954258672287641'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/8237954258672287641'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2008/10/hudson-continuous-build-tool.html' title='Hudson, a continuous build tool'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-9025234902744967192</id><published>2008-10-24T07:05:00.004+02:00</published><updated>2008-10-28T15:09:58.181+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='collaborative development'/><title type='text'>Kaiser Project</title><content type='html'>In the GWT realm, we can find a promising tool in the spirit of Trac, ie the Kaiser project from Triniforce. It is free and easy to install on your favorite Tomcat or Jetty web container.&lt;br /&gt;The 0.5.3 version is just out.&lt;br /&gt;&lt;br /&gt;The tool can be found &lt;a href="http://www.projectkaiser.com/"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7081216924330892658-9025234902744967192?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/9025234902744967192/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=9025234902744967192' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/9025234902744967192'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/9025234902744967192'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2008/10/kaiser-project.html' title='Kaiser Project'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-8201992316277515694</id><published>2008-10-22T16:01:00.002+02:00</published><updated>2008-10-22T16:03:55.650+02:00</updated><title type='text'>Mashups with GWT</title><content type='html'>&lt;a href="http://code.google.com/p/google-web-toolkit-doc-1-5/wiki/Article_UsingGWTForJSONMashups"&gt;An article&lt;/a&gt; defining how include JSON  mashups in gwt applications.&lt;br /&gt;&lt;br /&gt;If you want to create mashups, you could use the &lt;a href="http://editor.googlemashups.com/"&gt;mashup editor&lt;/a&gt; from Google, editor made with GWT itself.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7081216924330892658-8201992316277515694?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/8201992316277515694/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=8201992316277515694' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/8201992316277515694'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/8201992316277515694'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2008/10/mashups-with-gwt.html' title='Mashups with GWT'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-2226428025295541266</id><published>2008-10-22T10:18:00.003+02:00</published><updated>2008-10-22T10:20:02.291+02:00</updated><title type='text'>Introduction to REST</title><content type='html'>I've found on youtube this interesting video about the REST architecture.&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/YCcAE2SCQ6k&amp;amp;hl=fr&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;embed src="http://www.youtube.com/v/YCcAE2SCQ6k&amp;amp;hl=fr&amp;amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7081216924330892658-2226428025295541266?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/2226428025295541266/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=2226428025295541266' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/2226428025295541266'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/2226428025295541266'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2008/10/introduction-to-rest.html' title='Introduction to REST'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-2249158173685528098</id><published>2008-10-20T20:06:00.003+02:00</published><updated>2008-10-20T20:13:33.411+02:00</updated><title type='text'>Some links</title><content type='html'>Just a little post to make refence to some announcements around the RIA world :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://groups.google.com/group/Google-Web-Toolkit/browse_thread/thread/048413bdb6e5b292?pli=1"&gt;GWT 1.5.3 is announced&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://technofriends.in/2008/10/20/google-app-engine-to-support-java/"&gt;GoogleApps support of java&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.eclipse4sl.org/"&gt;Eclipse plugin for Silverlight&lt;/a&gt;&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/7081216924330892658-2249158173685528098?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/2249158173685528098/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=2249158173685528098' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/2249158173685528098'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/2249158173685528098'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2008/10/some-links.html' title='Some links'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-714591469807097173</id><published>2008-10-20T13:34:00.013+02:00</published><updated>2008-10-20T13:55:06.876+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='frameworks'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>GWT-RPC serialization with restlets</title><content type='html'>One of the major feature of GWT is the ability to serialize objects from/to client to/from server. It simplifies the communication between server and clients, but also improve data security by making the code readable with difficulty.&lt;br /&gt;In the frame of restlets, or even more generally RESTFul applications, we focus more on scalability of the application and portability of the data which are exchanged. Nevertheless we may choose an architecture where communication betwwen server and clients could mimic the GWT-RPC one, ie by transmitting serialized objects through the network.&lt;br /&gt;This possible by using some classes provided by the GWT framework. For instance :&lt;br /&gt;&lt;br /&gt;   * on the client side : SerializationStreamFactory, SerailizationStreamReader&lt;br /&gt;   * on the server side : RPC.encodeResponseForSuccess&lt;br /&gt;&lt;br /&gt;Example :&lt;br /&gt;1) on the client side&lt;br /&gt;&lt;code&gt;&lt;quote&gt;&lt;br /&gt;// Create the serialization stream factory&lt;br /&gt;SerializationStreamFactory serializationFactory =&lt;br /&gt;GWT.create(MyClass.class);&lt;br /&gt;&lt;br /&gt;// Create a stream reader : the argument is the serialized string from the server&lt;br /&gt;SerializationStreamReader streamReader =&lt;br /&gt;serializationFactory.createStreamReader(aStringReturnedFromRestletCommunication);&lt;br /&gt;&lt;br /&gt;// Deserialize the instance&lt;br /&gt;MyClass aClass= (MyClass)(streamReader.readObject()); &lt;/quote&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;2) on the server side&lt;br /&gt;&lt;code&gt;&lt;quote&gt;&lt;br /&gt;String encoded =null;&lt;br /&gt;try {&lt;br /&gt;String encoded = RPC.encodeResponseForSuccess(MyClass.getMethod("aMethodName"),myClass);&lt;br /&gt;} catch (SecurityException e) {&lt;br /&gt;e.printStackTrace();&lt;br /&gt;} catch (SerializationException e) {&lt;br /&gt;e.printStackTrace();&lt;br /&gt;} catch (NoSuchMethodException e) {&lt;br /&gt;e.printStackTrace();&lt;br /&gt;}&lt;br /&gt;return encoded; &lt;/quote&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7081216924330892658-714591469807097173?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/714591469807097173/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=714591469807097173' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/714591469807097173'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/714591469807097173'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2008/10/gwt-rpc-serialization-with-restlets.html' title='GWT-RPC serialization with restlets'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-8849499523212531902</id><published>2008-10-20T07:24:00.003+02:00</published><updated>2008-10-20T07:31:16.088+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='frameworks'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>Jersey, the other RESTful framework</title><content type='html'>We've spoken a lot about Restlets in previous posts... It was without counting on another RESTFul framework which begins to be widespread too, ie &lt;a href="https://jersey.dev.java.net/"&gt;Jersey&lt;/a&gt;.&lt;br /&gt;As said on their web site :&lt;br /&gt;&lt;span style="font-style: italic;"&gt;"Jersey is the open source (under dual  &lt;/span&gt;&lt;a style="font-style: italic;" href="https://jersey.dev.java.net/CDDL+GPL.html"&gt;CDDL+GPL license&lt;/a&gt;&lt;span style="font-style: italic;"&gt;),                     production quality, &lt;/span&gt;&lt;a style="font-style: italic;" href="https://jsr311.dev.java.net/nonav/releases/1.0/index.html"&gt;JAX-RS&lt;/a&gt;&lt;span style="font-style: italic;"&gt; (JSR 311) Reference Implementation for building RESTful Web services.                     But, it is also more than the Reference Implementation. Jersey provides                     an &lt;/span&gt;&lt;a style="font-style: italic;" href="https://jersey.dev.java.net/source/browse/*checkout*/jersey/tags/jersey-1.0/api/jersey/index.html"&gt;API&lt;/a&gt;&lt;span style="font-style: italic;"&gt; so that developers may extend Jersey to suite their needs.                     The &lt;/span&gt;&lt;a style="font-style: italic;" href="https://glassfish.dev.java.net/public/GovernancePolicy.html"&gt;governance policy&lt;/a&gt;&lt;span style="font-style: italic;"&gt;                     is the same as the &lt;/span&gt;&lt;a style="font-style: italic;" href="https://glassfish.dev.java.net/"&gt;GlassFish&lt;/a&gt;&lt;span style="font-style: italic;"&gt; project. &lt;/span&gt;                    "&lt;br /&gt;&lt;br /&gt;As I've currently an opened post -), I give you another link towards the&lt;a href="http://enunciate.codehaus.org/index.html"&gt; Enunciate project&lt;/a&gt; which is also interesting for building web services, RESTful or not (rest, soap or RPC).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7081216924330892658-8849499523212531902?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/8849499523212531902/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=8849499523212531902' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/8849499523212531902'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/8849499523212531902'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2008/10/jersey-other-restful-framework.html' title='Jersey, the other RESTful framework'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-6727695235091534729</id><published>2008-10-17T17:08:00.004+02:00</published><updated>2008-10-17T20:46:13.698+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='frameworks'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>Python-gwt-rpc</title><content type='html'>For the ones who want to develop  an application with GoogleApps, and who would also use their favorite GWT framework, there is a very useful project for doing this : &lt;a href="http://code.google.com/p/python-gwt-rpc/"&gt;Python-GWt-RPC&lt;/a&gt;..&lt;br /&gt;Take a glance.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7081216924330892658-6727695235091534729?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/6727695235091534729/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=6727695235091534729' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/6727695235091534729'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/6727695235091534729'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2008/10/pyhton-gwt-rpc.html' title='Python-gwt-rpc'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-2024412794159331311</id><published>2008-10-16T13:51:00.005+02:00</published><updated>2008-10-17T20:46:46.058+02:00</updated><title type='text'>Three interesting links</title><content type='html'>Not a message today but only three links towards useful ressources:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://docs.codehaus.org/display/JETTY/Continuations"&gt;Continuation on jetty&lt;/a&gt; : we've already spoken about continuations in previous posts. Here is the implemenation of this mechanism in Jetty. As the web site indicate us, continuations will be replaced by the Servlet3.0 specifications in the future.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://blog.distributedmatter.net/post/2008/06/09/HTTP-authentication-mechanisms-and-how-they-could-work-in-Restlet"&gt;HTTP authentication mechanisms with Restlets &lt;/a&gt;: authenficate and authorize are main feature of a web application accessing concerns. This article proposes an intesresting view for applying to Restlets.&lt;/li&gt;&lt;li&gt;&lt;a href="http://wiki.restlet.org/docs_1.1/13-restlet/g2/46-restlet.html"&gt;How to secure restlets applications&lt;/a&gt; : the documentation of the reslets web site&lt;br /&gt;&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/7081216924330892658-2024412794159331311?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/2024412794159331311/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=2024412794159331311' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/2024412794159331311'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/2024412794159331311'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2008/10/two-interesting-links.html' title='Three interesting links'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-7996566908776439100</id><published>2008-10-13T07:39:00.021+02:00</published><updated>2008-10-13T10:03:31.918+02:00</updated><title type='text'>FemtORM of opera (part2)</title><content type='html'>We described shortly the structure of FemtORM in the previous post. We now have to face to different scenari, which may show the limits of the approach.&lt;br /&gt;&lt;br /&gt;We may start with the following instances :&lt;br /&gt;c1.1 =&gt; c3.1 , ie a first instance of Class1 refering to the first instance of Class3&lt;br /&gt;c1.2 =&gt; c3.1 , ie a second instance of Class1 refering to the first instance of Class3&lt;br /&gt;c2 =&gt; c3.2 , ie a first instance of Class2 refering to the second instance of Class3&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;Example1 :&lt;/span&gt;&lt;br /&gt;This is  the simplest case we can face to. We have a table for each class we have defined in our domain model, eg one table for Class1, one for Class2, and one for Class3.&lt;br /&gt;Each instance of these class has an ID which enables to make references from table records to other table records.&lt;br /&gt;The store methods in MysqlProxy are roughly the ones:&lt;br /&gt;&lt;blockquote&gt;&lt;code&gt;protected void storeClass3(IDBAccess aClass3) {&lt;br /&gt;if(aClass3.getID()&lt;0)&gt;&lt;code&gt;&lt;span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;INSERT INTO Class3(integer1,integer2) VALUES (");&lt;br /&gt;strBuf.append(aClass3.getInteger1());&lt;br /&gt;strBuf.append(aClass3.getInteger2());&lt;br /&gt;strBuf.append(")");&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;code&gt;}&lt;br /&gt;&lt;br /&gt;protected void storeClass1(IDBAccess aClass2) {&lt;br /&gt;&lt;/code&gt;&lt;code&gt;if(aClass2.getID()&lt;0)&gt;&lt;br /&gt;&lt;code&gt;strBuf.append("&lt;/code&gt;&lt;code&gt;&lt;span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;INSERT INTO Class2(float,string) VALUES (");&lt;br /&gt;strBuf.append(aClass2.getFloat());&lt;br /&gt;strBuf.append(aClass2.getString());&lt;br /&gt;strBuf.append(")");&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code&gt; }&lt;br /&gt;&lt;br /&gt;protected void storeClass2(IDBAccess aClass1) {&lt;br /&gt;&lt;/code&gt;&lt;code&gt;if(aClass1.getID()&lt;0)&gt;&lt;br /&gt;&lt;code&gt;strBuf.append("&lt;/code&gt;&lt;code&gt;&lt;span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;INSERT INTO Class1(integer,string) VALUES (");&lt;br /&gt;strBuf.append(aClass1.getInteger());&lt;br /&gt;strBuf.append(aClass1.String());&lt;br /&gt;strBuf.append(")");&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;code&gt;&lt;br /&gt;}&lt;/code&gt;&lt;/code&gt;&lt;/code&gt;&lt;/code&gt;&lt;/blockquote&gt;Thanks to the marking algorithm, the c3.1 instance is stored only once. We can also add another guard by testing is the ID number has already been set or not. The ID number is actually  assigned to the instances once stored in the database.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;Example2:&lt;/span&gt;&lt;br /&gt;In order to improve the database querying, we may want to merge the Class1 and Class3 , and also Class2 and Class3.&lt;br /&gt;We then obtain the following tables :&lt;br /&gt;Class1 (id integer string integer1 integer1 class3_id)&lt;br /&gt;Class2 (id float string integer1 integer2 class3_id)&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Make notice that by doing this we consider of course that we face to a kind of relation  named aggregation instead of association in the sense of inter-classes object relations.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The store methods look like the following from now :&lt;br /&gt;&lt;blockquote&gt;&lt;code&gt;protected void storeClass3(IDBAccess aClass3) {&lt;br /&gt;//nothing to do&lt;/code&gt;&lt;code&gt;&lt;span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;code&gt;}&lt;br /&gt;&lt;br /&gt;protected void storeClass1(IDBAccess aClass2) {&lt;br /&gt;&lt;/code&gt;&lt;code&gt;if(aClass2.getID()&lt;0)&gt;&lt;br /&gt;&lt;code&gt;strBuf.append("&lt;/code&gt;&lt;code&gt;&lt;span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;INSERT INTO Class2(float,string,integer1,integer2) VALUES (");&lt;br /&gt;strBuf.append(aClass2.getFloat());&lt;br /&gt;strBuf.append(aClass2.getString());&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;code&gt;&lt;span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;strBuf.append(aClass2.getClass3().getInteger1());&lt;br /&gt;strBuf.append(aClass2.&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;code&gt;&lt;span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;getClass3().getInteger2());&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&lt;span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;   strBuf.append(")");&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code&gt; }&lt;br /&gt;&lt;br /&gt;protected void storeClass2(IDBAccess aClass1) {&lt;br /&gt;&lt;/code&gt;&lt;code&gt;strBuf.append("&lt;/code&gt;&lt;code&gt;&lt;span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;INSERT INTO Class1(integer,string,integer1,integer2) VALUES (");&lt;br /&gt;strBuf.append(aClass2.getInteger());&lt;br /&gt;strBuf.append(aClass2.getString());&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;code&gt;&lt;span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;strBuf.append(aClass2.getClass3().getInteger1());&lt;br /&gt;strBuf.append(aClass2.&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;code&gt;&lt;span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;getClass3().getInteger2());&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&lt;span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;   strBuf.append(")");&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;code&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;/code&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;We will speak about updating and retrieving data in future posts.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7081216924330892658-7996566908776439100?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/7996566908776439100/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=7996566908776439100' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/7996566908776439100'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/7996566908776439100'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2008/10/femtorm-of-opera-part2.html' title='FemtORM of opera (part2)'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-5956715214973118354</id><published>2008-10-12T02:16:00.032+02:00</published><updated>2008-10-16T09:05:20.172+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='frameworks'/><category scheme='http://www.blogger.com/atom/ns#' term='databases'/><category scheme='http://www.blogger.com/atom/ns#' term='articles'/><title type='text'>FemtORM of Opera (part 1)</title><content type='html'>I posted on this blog some messages about OODBMS, but also PureMVC, and some readers spoke about DataNucleus. This morning I was thinking on a subject for the blog, and I said to myself : " why not a kind of PureMVC for ORM?" Instead of new frameworks, why not proposing a very small library and patterns to describe the communication between Object and relational world?&lt;br /&gt;So, because it is very tiny, and because it is just a try, we could call this &lt;a href="http://fr.wikipedia.org/wiki/Femto"&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Femto &lt;/span&gt;&lt;/a&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;ORM&lt;/span&gt;, shortuted as FemtORM :-)&lt;br /&gt;&lt;br /&gt;How in fine FemtORM could work?  We distinguish two main parts :&lt;br /&gt;&lt;ol&gt;&lt;li&gt;storing/updating : we define in each persistent class two methods, ie store and update&lt;br /&gt;&lt;/li&gt;&lt;li&gt;retrieving data : this is done by interrogating a DBAcess class singleton which offers some retrieving methods according the needs&lt;/li&gt;&lt;/ol&gt;What we have to say is that the developper has to write all the code for storing or getting data, ie he has to decide himself the transformation scheme.&lt;br /&gt;&lt;br /&gt;So start with an exemple in this part 1. We will show another exemple in the upcoming part2.&lt;br /&gt;&lt;br /&gt;Let define three persistent classes Class1, Class2, Class3  ( we focus for the moment only on the &lt;span style="font-style: italic;"&gt;store&lt;/span&gt; method) where instance  relationships are the following :&lt;br /&gt;c1=&gt;c3, c2=&gt;c3&lt;br /&gt;&lt;blockquote style="font-style: italic;"&gt;public class Class1 implements IDBAccess{&lt;br /&gt;public Class1(Class3 class3,  int anInteger, String str) {&lt;br /&gt;super();&lt;br /&gt;aClass3 = class3;&lt;br /&gt;aStr = str;&lt;br /&gt;this.anInteger = anInteger;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;protected int id;&lt;br /&gt;protected int anInteger;&lt;br /&gt;protected String aStr;&lt;br /&gt;&lt;br /&gt;protected Class3 aClass3;&lt;br /&gt;&lt;br /&gt;public void store(DBProxy aDBProxy){&lt;br /&gt;if(aDBProxy.isMarked(this))return;&lt;br /&gt;aDBProxy.store(this);&lt;br /&gt;aClass3.store(aDBProxy);&lt;br /&gt;}&lt;br /&gt;}&lt;/blockquote&gt;the second class :&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-style: italic;"&gt;public class Class2 implements IDBAccess{&lt;br /&gt;public Class2(Class3 class3, boolean bool,  double double1) {&lt;br /&gt;super();&lt;br /&gt;aBool = bool;&lt;br /&gt;aClass3 = class3;&lt;br /&gt;aDouble = double1;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;protected int id;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;protected double aDouble;&lt;br /&gt;protected boolean aBool;&lt;br /&gt;&lt;br /&gt;protected Class3 aClass3;&lt;br /&gt;&lt;br /&gt;public void store(DBProxy aDBProxy){&lt;br /&gt;if(aDBProxy.isMarked(this))return;&lt;br /&gt;aDBProxy.store(this);&lt;br /&gt;aClass3.store(aDBProxy);&lt;br /&gt;}&lt;br /&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;and the third one :&lt;br /&gt;&lt;blockquote style="font-style: italic;"&gt;public class Class3 implements IDBAccess{&lt;br /&gt;public Class3(int anInteger1, int anInteger2) {&lt;br /&gt;super();&lt;br /&gt;this.anInteger1 = anInteger1;&lt;br /&gt;this.anInteger2 = anInteger2;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;protected int id;&lt;br /&gt;protected int anInteger1;&lt;br /&gt;protected int anInteger2;&lt;br /&gt;&lt;br /&gt;public void store(DBProxy aDBProxy){&lt;br /&gt;if(!aDBProxy.isMarked(this))&lt;br /&gt; aDBProxy.store(this);&lt;br /&gt;}&lt;br /&gt;}&lt;/blockquote&gt;We define now the Main class where we store these 3 classes in the database :&lt;br /&gt;&lt;blockquote style="font-style: italic;"&gt;public class MainClass {&lt;br /&gt;public static void main(String[] args) {&lt;br /&gt;DBProxy aDBProxy = new MySQLProxy();&lt;br /&gt;Vector&lt;idbaccess&gt; list = new Vector&lt;idbaccess&gt;();&lt;br /&gt;Class3 aClass3 = new Class3(1,2);&lt;br /&gt;list.add(new Class1(aClass3, 1, "one"));&lt;br /&gt;list.add(new Class1(aClass3, 2, "two"));&lt;br /&gt;list.add(new Class2(new Class3(3,4), true, 1.1));&lt;br /&gt;&lt;br /&gt;for (IDBAccess object : list) {&lt;br /&gt; object.store(aDBProxy);&lt;br /&gt;}&lt;br /&gt;aDBProxy.commit();&lt;br /&gt;}&lt;br /&gt;}&lt;/idbaccess&gt;&lt;/idbaccess&gt;&lt;/blockquote&gt;In the Main class, we can see that we have defined a particular DBProxy subclass for MySQL which is called MySQLProxy. BDProxy will define generic mechanisms and MySQL actual translations between the application and the mysql database.&lt;br /&gt;&lt;br /&gt;We also defined an interface called IDBAccess wich has to be implemented in each persistent class like Class1, Class2 and Class3. This interfac define the store and update methods which have to be define in the persistent classes. In this example, we only implemented the store method up to now.&lt;br /&gt;&lt;br /&gt;How are defined the store methods? It is actually a graph marking algorithm. We run the object graph by marking objects. Once all the objects to be store are marked, we perform the storing by sending the &lt;span style="font-style: italic;"&gt;commit &lt;/span&gt;method to the DBProxy instance.&lt;br /&gt;&lt;br /&gt;The DBProxy class offers the &lt;span style="font-style: italic;"&gt;isMarked &lt;/span&gt;method indicate the object has already been marked.&lt;br /&gt;&lt;blockquote&gt;&lt;code&gt;public interface IDBAccess {&lt;br /&gt;public void store(DBProxy aDBProxy);&lt;br /&gt;public void update(DBProxy aDBProxy);&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;/blockquote&gt;We define hereafter the abstact DBproxy class where generic mechanism are implemented.&lt;br /&gt;&lt;blockquote&gt;&lt;code&gt;public abstract class DBProxy {&lt;br /&gt;&lt;br /&gt;Hashtable&lt;idbaccess, boolean=""&gt; map = new Hashtable&lt;idbaccess, boolean=""&gt;();&lt;br /&gt;Connection dbConnexion;&lt;br /&gt;StringBuffer strBuf = new StringBuffer();&lt;br /&gt;&lt;br /&gt;public DBProxy() {&lt;br /&gt;super();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public void store(IDBAccess aDBClass) {&lt;br /&gt;if(map.contains(aDBClass))&lt;br /&gt;map.put(aDBClass, true);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public boolean isStored(IDBAccess aClass) {&lt;br /&gt;return map.contains(aClass);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public abstract void commit();&lt;br /&gt;&lt;br /&gt;} &lt;/idbaccess,&gt;&lt;/idbaccess,&gt;&lt;/code&gt;&lt;/blockquote&gt;We have defined above the MySQLproxy class :&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;code&gt;public class MySQLProxy extends DBProxy {&lt;br /&gt;public void store(IDBAccess aDBClass) {&lt;br /&gt;super.store(aDBClass);&lt;br /&gt;if (aDBClass  instanceof Class1)&lt;br /&gt;storeClass1(aDBClass);&lt;br /&gt;if (aDBClass  instanceof Class2)&lt;br /&gt;storeClass2(aDBClass);&lt;br /&gt;if (aDBClass  instanceof Class3)&lt;br /&gt;storeClass3(aDBClass);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;protected void storeClass3(IDBAccess aClass3) {&lt;br /&gt;// we store in the stringbuffer the sql code which will be executed&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;protected void storeClass1(IDBAccess aClass2) {&lt;br /&gt;&lt;/code&gt;&lt;code&gt;// we store in the stringbuffer the sql code which will be executed&lt;/code&gt;&lt;br /&gt;&lt;code&gt; }&lt;br /&gt;&lt;br /&gt;protected void storeClass2(IDBAccess aClass1) {&lt;br /&gt;&lt;/code&gt;&lt;code&gt;// we store in the stringbuffer the sql code which will be executed&lt;/code&gt;&lt;code&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;@Override&lt;br /&gt;public void commit() {&lt;br /&gt;String sqlCommand = strBuf.toString();&lt;br /&gt;// 1) send and execute the sqlCommand to the database&lt;br /&gt;// 2) we attribute an id number  to the classes which have been stored (if needed)&lt;br /&gt;}&lt;br /&gt;}&lt;/code&gt;&lt;/blockquote&gt;This article is by far not complete ; it gives you the overall scheme how we could perform the store/update process by usinf IDBAccess, DBProxy, MySQLProxy and graph marking running.&lt;br /&gt;&lt;br /&gt;We will see in the part 2 different scenarii of use, and how to retrieve data.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7081216924330892658-5956715214973118354?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/5956715214973118354/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=5956715214973118354' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/5956715214973118354'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/5956715214973118354'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2008/10/femtorm-part-1.html' title='FemtORM of Opera (part 1)'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-6361586492915679036</id><published>2008-10-10T13:46:00.004+02:00</published><updated>2008-10-10T13:56:51.042+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='architecture'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>GWT/Google Gears/Restlets</title><content type='html'>This post is actually a question to the readers of this blog.&lt;br /&gt;I would like to know if you already have tried to use GWT with Google Gears, and more especially if you've tried to used GWT-restlets with Google Gears...&lt;br /&gt;While REST ressources can be cached and stored, I imagine that Google Gears could easily manage these ressources, and then GWT could benefit a lot of this feature to easily develop web application which could run locallyand/or remotely.&lt;br /&gt;Have you experienced this?&lt;br /&gt;regards&lt;br /&gt;&lt;br /&gt;material :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://code.google.com/webtoolkit/"&gt;gwt&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://wiki.restlet.org/docs_1.1/13-restlet/28-restlet/144-restlet.html"&gt;gwt-restlets&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://gears.google.com/"&gt;google-gears&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/gwt-google-apis/"&gt;gwt google api&lt;/a&gt;&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/7081216924330892658-6361586492915679036?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/6361586492915679036/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=6361586492915679036' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/6361586492915679036'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/6361586492915679036'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2008/10/gwtgoogle-gearsrestlets.html' title='GWT/Google Gears/Restlets'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-1367746417638063315</id><published>2008-10-09T17:00:00.006+02:00</published><updated>2008-10-10T07:48:09.574+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='databases'/><category scheme='http://www.blogger.com/atom/ns#' term='language'/><title type='text'>DB4O and groovy</title><content type='html'>When we  use the native queries in DB4O with Java, we are confronted to the use of anonymous classes while .Net use the &lt;span style="font-style: italic;"&gt;delegate  &lt;/span&gt;facility which is of course shorter and smarter.&lt;br /&gt;When Java will have Block Closure capabilities, the problem will be solved simply.... Up to this great deadline :-) we can use Groovy to perform this task. You only have to create builder to do it, or use the groovy closures.&lt;br /&gt;&lt;br /&gt;There is a good groovy module which aims to create a DSL to make easier the use of SODA like expressions : &lt;a href="http://code.google.com/p/db4o-groovy/"&gt;Groovy4DB40&lt;/a&gt;..&lt;br /&gt;A good tutorial for this topic is also available &lt;a href="http://klevesaat.blogspot.com/2008/06/groovy-and-db4o.html"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://groovy.codehaus.org/"&gt;Groovy &lt;/a&gt;is fun too :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7081216924330892658-1367746417638063315?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/1367746417638063315/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=1367746417638063315' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/1367746417638063315'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/1367746417638063315'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2008/10/db4o-and-groovy.html' title='DB4O and groovy'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-5745165237836381409</id><published>2008-10-06T16:31:00.031+02:00</published><updated>2008-10-10T07:48:48.304+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='patterns'/><category scheme='http://www.blogger.com/atom/ns#' term='development'/><title type='text'>Merging state and command pattern with enum and interface</title><content type='html'>A post just for the fun :-) I would like to describe how to simply merge the &lt;a href="http://exciton.cs.rice.edu/JavaResources/DesignPatterns/StatePat.htm"&gt;&lt;span style="font-weight: bold;"&gt;state &lt;/span&gt;&lt;/a&gt;and &lt;span style="font-weight: bold;"&gt;&lt;a href="http://en.wikipedia.org/wiki/Command_pattern"&gt;command&lt;/a&gt; &lt;/span&gt;design patterns while using &lt;span style="font-weight: bold;"&gt;enum &lt;/span&gt;and &lt;span style="font-weight: bold;"&gt;interface&lt;/span&gt; in java.&lt;br /&gt;&lt;br /&gt;We have for instance a class having a changing state :&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-style: italic;font-family:courier new;" &gt;public MyClass {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;font-family:courier new;" &gt;            protected &lt;span style="font-weight: bold;"&gt;IState currentState = new MyState.INIT;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;font-family:courier new;" &gt;            ...... // other instance variables&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;font-family:courier new;" &gt;            ...... // some methods&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                            public void myMethod() {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                                    if(aCondition) &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                                           currentState = currentState.nextState();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                                   else &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                                          currentState = currentState.previousState();&lt;/span&gt;&lt;br /&gt;                    &lt;span style="font-style: italic;"&gt;     currentState.execAction();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                           }&lt;/span&gt;&lt;span style="font-style: italic;font-family:courier new;" &gt;&lt;br /&gt;}&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;We can define the interface IState as follow :&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-style: italic;font-family:courier new;" &gt;public Interface IState {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;font-family:courier new;" &gt;        public void execAction();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;font-family:courier new;" &gt;        public void undoAction();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;font-family:courier new;" &gt;        public IState nextState();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;font-family:courier new;" &gt;        public IState previousState();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;font-family:courier new;" &gt;}&lt;/span&gt;&lt;/blockquote&gt;A dummy state for the fun :&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-style: italic;"&gt;public enum DummyState &lt;/span&gt;&lt;span style="font-style: italic;font-family:courier new;" &gt;implements IState&lt;/span&gt;&lt;span style="font-style: italic;"&gt; {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;       NIL ; // only one state&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;font-family:courier new;" &gt;   public void execAction(){}; // nothing by default&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;font-family:courier new;" &gt;   public void undoAction(){}; // nothing by default&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;font-family:courier new;" &gt;   public IEtat nextState(){&lt;br /&gt;return this;&lt;br /&gt;};&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;font-family:courier new;" &gt;   public IState previousState(){&lt;br /&gt;return this;&lt;br /&gt;};&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;}&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;And then a state MyState :&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-style: italic;font-family:courier new;" &gt;public enum MyState implements IState {&lt;/span&gt;&lt;br /&gt;&lt;div&gt;INIT {&lt;/div&gt;&lt;div&gt;&lt;span style="white-space: pre;"&gt; &lt;/span&gt;public IState nextState(){ return IN_PROGRESS;}&lt;/div&gt; &lt;div&gt;&lt;span style="white-space: pre;"&gt; &lt;/span&gt;public IState previousState() { return INIT;}&lt;/div&gt;&lt;div&gt;}, &lt;/div&gt;&lt;div&gt;IN_PROGRESS {&lt;/div&gt;&lt;div&gt;&lt;span style="white-space: pre;"&gt; &lt;/span&gt;public IState nextState(){ return TERMINATED;}&lt;/div&gt; &lt;div&gt;&lt;span style="white-space: pre;"&gt; &lt;/span&gt;public IState previousState() { return INIT;}&lt;/div&gt;&lt;div&gt;}, &lt;/div&gt;&lt;div&gt;SUSPENDED {&lt;/div&gt;&lt;div&gt;&lt;span style="white-space: pre;"&gt; &lt;/span&gt;public IState nextState(){ return IN_PROGRESS;}&lt;/div&gt; &lt;div&gt;&lt;span style="white-space: pre;"&gt; &lt;/span&gt;public IState previousState() { return IN_PROGRESS;}&lt;/div&gt;&lt;div&gt;}, &lt;/div&gt;&lt;div&gt;TERMINATED {&lt;/div&gt;&lt;div&gt;&lt;span style="white-space: pre;"&gt; &lt;/span&gt;public void execAction(){&lt;/div&gt; &lt;div&gt;&lt;span style="white-space: pre;"&gt;  &lt;/span&gt;Action anAction = new Action();&lt;/div&gt;&lt;div&gt;&lt;span style="white-space: pre;"&gt;  &lt;/span&gt;anAction.exec();&lt;/div&gt;&lt;div&gt;&lt;span style="white-space: pre;"&gt;  &lt;/span&gt;actionsDone.add(anAction);&lt;/div&gt; &lt;div&gt;&lt;span style="white-space: pre;"&gt; &lt;/span&gt;};&lt;/div&gt;&lt;div&gt;&lt;span style="white-space: pre;"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="white-space: pre;"&gt; &lt;/span&gt;public IState nextState(){ return ARCHIVED;}&lt;/div&gt; &lt;div&gt;&lt;span style="white-space: pre;"&gt; &lt;/span&gt;public IState previousState() { return IN_PROGRESS;}&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;}, &lt;/div&gt;&lt;div&gt;ARCHIVED {&lt;/div&gt;&lt;div&gt;&lt;span style="white-space: pre;"&gt; &lt;/span&gt;public IState nextState(){ return DummyState.NIL;}&lt;/div&gt; &lt;div&gt;&lt;span style="white-space: pre;"&gt; &lt;/span&gt;public IState previousState() { return TERMINATED;}&lt;/div&gt;&lt;div&gt;}&lt;span style="white-space: pre;"&gt; &lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;font-family:courier new;" &gt;        Vector&lt;action&gt; actionsDone = new Vector&lt;action&gt;();&lt;/action&gt;&lt;/action&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;font-family:courier new;" &gt;   public void execAction(){}; // nothing by default&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;font-family:courier new;" &gt;   public void undoAction(){}; // nothing by default&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;font-family:courier new;" &gt;   public IState nextState(){&lt;/span&gt;&lt;span style="font-style: italic;font-family:courier new;" &gt;&lt;br /&gt;return this;&lt;br /&gt;};&lt;/span&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;span style="font-style: italic;font-family:courier new;" &gt;   public IEtat previousState(){&lt;/span&gt;&lt;span style="font-style: italic;font-family:courier new;" &gt;&lt;br /&gt;return this;&lt;br /&gt;};&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="font-style: italic;font-family:courier new;" &gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;And finally the Action :&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-style: italic;font-family:courier new;" &gt;public Class Action extends Command {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;font-family:courier new;" &gt;   public exec() {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;font-family:courier new;" &gt;    //something to do&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;font-family:courier new;" &gt;  }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;font-family:courier new;" &gt;}&lt;/span&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7081216924330892658-5745165237836381409?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/5745165237836381409/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=5745165237836381409' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/5745165237836381409'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/5745165237836381409'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2008/10/merging-state-and-command-pattern-with.html' title='Merging state and command pattern with enum and interface'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-5566593147999383157</id><published>2008-10-06T08:06:00.005+02:00</published><updated>2008-10-10T07:49:27.191+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='architecture'/><title type='text'>MiniG : power of GWT, Osgi and Rest</title><content type='html'>We talked about a global architecture few posts ago. In this architecture, we pointed out GWT, OSGI, REST, PureMVC, DB4O as basis elements.&lt;br /&gt;I've just read this morning the emergence of a new open source project : &lt;a href="http://code.google.com/p/minig/"&gt;&lt;span style="font-weight: bold;"&gt;miniG&lt;/span&gt;&lt;/a&gt;, a GMail-like email application.&lt;br /&gt;What is interesting in this project is the technical choices which has been made, ie GWT, OSGI and REST.&lt;br /&gt;I enjoin you to take a glance to this project.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7081216924330892658-5566593147999383157?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/5566593147999383157/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=5566593147999383157' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/5566593147999383157'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/5566593147999383157'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2008/10/minig-power-of-gwt-osgi-and-rest.html' title='MiniG : power of GWT, Osgi and Rest'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-821608304777045265</id><published>2008-10-06T07:04:00.004+02:00</published><updated>2008-10-10T07:49:44.556+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='architecture'/><title type='text'>DataNucleus</title><content type='html'>On a former post, I've had some comments (it's rare :-) ), and especially some from Andy who talked about &lt;a href="http://www.datanucleus.org/"&gt;DataNucleus &lt;/a&gt;above DB4O, but also more generally above quite every persistent layer while providing a standardized JPA API for accessing data. I've not yet tried this technology, and I've then no advice about it.&lt;br /&gt;Here can you find what Andy said about DataNucleus :"&lt;br /&gt;&lt;b style="font-style: italic;"&gt;What are the benefits of a standardised API ?&lt;/b&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;So you can in principle swap your persistence process to an alternative implementation. Developers don't need to learn a proprietary API.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;b style="font-style: italic;"&gt;What are the benefits of using DataNucleus in this respect?&lt;/b&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;You can use db4o for persistence, but then also persist data to LDAP, or RDBMS, or XML, or Excel, or ... with a simple change of a URL (no changes to your data model, or persistence code). Also since DataNucleus jars are already OSGi enabled you can just drop them in your container rather than having to add special treatment.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;1) more developers who already know standardised APIs (JDO/JPA) and 2) you have other benefits by choosing that route. Please define where the disadvantage is ? &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Assuming your developer doesn't know any persistence API, what is the learning curve for the db4o API? about the same as JDO/JPA IMHO, however they'll find more docs for JDO/JPA since there are more implementations. You don't code to DataNucleus proprietary APIs. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Speed ? very little difference to db4o native speed. No need to use db4o transparent persistence/activation since its done for you by DataNucleus. You can have application identity capabilities (define primary key fields in your class) using JDO/JPA and DataNucleus whereas with db4o's API this is impossible.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;The DataNucleus site has adequate documentation of the available APIs should you be interested.&lt;/span&gt;"&lt;br /&gt;&lt;br /&gt;I would like to hear experience return from users... Don't hesitate to write comments :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7081216924330892658-821608304777045265?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/821608304777045265/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=821608304777045265' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/821608304777045265'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/821608304777045265'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2008/10/datanucleus.html' title='DataNucleus'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-7945887685127604415</id><published>2008-10-03T16:47:00.000+02:00</published><updated>2008-10-03T16:48:00.612+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='architecture'/><title type='text'>Restlet 1.1RC2 out</title><content type='html'>Release 1.1 RC2 is out, with all known bugs in &lt;a href="http://blog.noelios.com/2008/09/24/restlet-11-rc2-released/"&gt;Restlet &lt;/a&gt;closed (more than 20 fixed!). Please help us test this build while be work on the documentation tasks for the final 1.1 release.&lt;br /&gt;&lt;p&gt;Here is a summary of the main  changes:&lt;/p&gt; &lt;ul&gt;&lt;li&gt;Added support for HTTP authentication in Restlet-GWT module and fixed compilation issues.&lt;/li&gt;&lt;li&gt;Fixed socket closing issues with internal HTTP server connector.&lt;/li&gt;&lt;li&gt;Fully stabilized the Grizzly HTTP server connector.&lt;/li&gt;&lt;li&gt;Fixed regression with SpringHost due to context refactoring.&lt;/li&gt;&lt;li&gt;Fixed class-loading regressions.&lt;/li&gt;&lt;li&gt;WADL extension now properly supports nested resources.&lt;/li&gt;&lt;li&gt;Updated db4o to version 7.4.58.&lt;/li&gt;&lt;li&gt;Updated FreeMarker to version 2.3.14.&lt;/li&gt;&lt;li&gt;Updated JAX-RS API to version 0.11.&lt;/li&gt;&lt;li&gt;Updated GWT to version 1.5.2 (final).&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/7081216924330892658-7945887685127604415?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/7945887685127604415/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=7945887685127604415' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/7945887685127604415'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/7945887685127604415'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2008/10/restlet-11rc2-out.html' title='Restlet 1.1RC2 out'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-224661033054196289</id><published>2008-09-28T17:51:00.009+02:00</published><updated>2008-10-03T16:52:52.315+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='development'/><category scheme='http://www.blogger.com/atom/ns#' term='architecture'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>PureMVC web framework</title><content type='html'>When developping a web application, we all know that we have several parts to focus on ; presentation flow management, business rules development, data persistence, and so on...  It is generally called N-Tiers architecture, N being function of the complexity of the application.&lt;br /&gt;J5EE for instance aims to cover all the scope of web application concerns.&lt;br /&gt;For the ones who don't want a &lt;span style="font-style: italic;"&gt;all in one&lt;/span&gt; framework, or who develop with other languages than Java, it exists many "little" frameworks which focus on a particular part of the web application development problematics. It is the case especially of &lt;span style="font-style: italic;"&gt;Struts&lt;/span&gt;, or &lt;span style="font-style: italic;"&gt;Wickets&lt;/span&gt;, or &lt;span style="font-style: italic;"&gt;Spring&lt;/span&gt;, etc...&lt;br /&gt;This is in this context that the &lt;a href="http://puremvc.org/"&gt;PureMVC&lt;/a&gt; framework occurs ; its scope is only to manage the presentation logics, ie how the developper has to design his application to manage views, actions, controls, ...,  in the web pages. It is clearly a replacement of Struts and it is based uppon clear explained design patterns of the &lt;a href="http://en.wikipedia.org/wiki/Design_Patterns"&gt;Gang of 4&lt;/a&gt; : proxy, médiator, command, facade, observer ; five design patterns for building  simple and well structured web applications from the presentation point of view.&lt;br /&gt;The "plus" of the techno is that it has been derived for many languages : Php, Ruby, Java, Flex, ... We may  even consider now developping an entire application in different languages (for instance Php and Java) with the same underluing concepts... It could be the case in a SOA approach, eg a web portal (public access) in Php which would focus on referencing, and in java/gwt for the business part of the application (private access).&lt;br /&gt;Another interesting view is that it is ,by construction (it is only based uppon the use of design patterns, not libraries), compatible with other frameworks like Spring or Restlets...&lt;br /&gt;For the best, I would like to make notice that &lt;a href="http://code.google.com/p/purevmc4gwt/"&gt;PureMVC has been derived for GWT&lt;/a&gt;, ie indirectly for Javascript :-).&lt;br /&gt;So let imagine the following global architecture :)&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://code.google.com/webtoolkit/"&gt;GWT &lt;/a&gt;for the graphical part&lt;/li&gt;&lt;li&gt;PureMVC4GWT for controls and UI logics&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.restlet.org/"&gt;Restlets &lt;/a&gt;for  ressource access on the server(s)&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.eclipse.org/equinox/server/"&gt;OSGI &lt;/a&gt;for managing component efficiently&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.db4o.com/"&gt;DB4O &lt;/a&gt;for storing data in database&lt;/li&gt;&lt;/ul&gt;Is it not a nice proposal? ;-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7081216924330892658-224661033054196289?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/224661033054196289/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=224661033054196289' title='28 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/224661033054196289'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/224661033054196289'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2008/09/puremvc-web-framework.html' title='PureMVC web framework'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><thr:total>28</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-4901850119905311138</id><published>2008-09-23T07:58:00.008+02:00</published><updated>2008-10-10T07:47:35.514+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='architecture'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>Some articles and material about REST architecture</title><content type='html'>REST explained in &lt;a href="http://objectif-naiade.blogspot.com/2007/11/what-hell-is-rest.html"&gt;few word&lt;/a&gt;s.&lt;br /&gt;Just a little post to make reference to three articles from &lt;strong&gt;Stefan Tilkov.&lt;span style="font-weight: normal;"&gt; Interesting!&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;ol&gt;&lt;li&gt;&lt;a href="http://www.infoq.com/articles/rest-introduction"&gt;a brief introduction to REST&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.infoq.com/articles/rest-anti-patterns"&gt;REST anti-patterns&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.infoq.com/articles/tilkov-rest-doubts"&gt;Addressing Doubts about REST&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;I recall also in mind that a great and simple REST framework in java exists : &lt;a href="http://www.restlet.org/"&gt;Restlets&lt;/a&gt;!!! It may even work with GWT too ; see the &lt;a href="http://wiki.restlet.org/docs_1.1/g1/13-restlet/28-restlet/144-restlet.html"&gt;GWT-Restlet &lt;/a&gt;Module. You also can use &lt;a href="http://docs.codehaus.org/display/GROOVY/GroovyRestlet"&gt;Restlets with Groovy&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;For the ones who want to use REST with Php, the following articles are also nice :&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Php REST Server &lt;a href="http://www.lornajane.net/posts/2008/PHP-Rest-Server-part-1-of-3"&gt;part 1&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Php REST server &lt;a href="http://www.lornajane.net/posts/2008/PHP-Rest-Server-part-2-of-3"&gt;part 2&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Php REST server &lt;a href="http://www.lornajane.net/posts/2008/PHP-Rest-Server-part-3-of-3"&gt;part 3&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7081216924330892658-4901850119905311138?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/4901850119905311138/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=4901850119905311138' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/4901850119905311138'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/4901850119905311138'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2008/09/some-articles-about-rest-architecture.html' title='Some articles and material about REST architecture'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-1968856964326278983</id><published>2008-09-22T08:39:00.005+02:00</published><updated>2008-09-22T08:49:12.199+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='collaborative development'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>Balsamic Mockups</title><content type='html'>I discovered last week a quite interesting tool for developping UI  Mockups : &lt;a href="http://www.balsamiq.com/"&gt;Balsamiq Mockup&lt;/a&gt;.  It is a singular tool which has pleasant characteristics.&lt;br /&gt;You have two modes of mockuping :&lt;br /&gt;&lt;ol&gt;&lt;li&gt;stand-alone way&lt;/li&gt;&lt;li&gt;collaborative way through a plugin in AtlassianConfluence or in Twiki&lt;/li&gt;&lt;/ol&gt;This second aspect is quite novative and valuable.&lt;br /&gt;I've tried the tool a little, and have found it is quite easy to use and intuitive.&lt;br /&gt;I only regret the lack of dynamics like with Axure... You only can develop sibgle pages not connected between them, which means you can't describe tha page flows.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7081216924330892658-1968856964326278983?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/1968856964326278983/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=1968856964326278983' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/1968856964326278983'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/1968856964326278983'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2008/09/balsamic-mockups.html' title='Balsamic Mockups'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-6018241612799834985</id><published>2008-09-21T09:38:00.014+02:00</published><updated>2008-09-22T08:48:47.690+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='collaborative development'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>Thoughts about wikis and CMS</title><content type='html'>I've used to use &lt;a href="http://en.wikipedia.org/wiki/Wiki"&gt;wiki&lt;/a&gt;s since around 2000 ; I've always been interested in this technology, even if at first I couldn't  say exactly why, maybe the intuition that web sites should be simple to use and simple to design. It is actually, even today, quite painful to define web sites ; there is a multitude of languages, technologies, frameworks, patterns, paradigms, ecosystems, and so on... Everyone tries to enhance a technology and spends time to fight other people to proove that the new technology is the best one.&lt;br /&gt;It is very time consuming, and &lt;span style="font-style: italic;"&gt;in fine&lt;/span&gt; technologies are still not oriented customers, users.&lt;br /&gt;It is certainly why ideas behind wikis (I don't speak about their implementations) are for me valuable ; the wiki creator thought that it should be easy to create pages, to navigate between them, and so on...&lt;br /&gt;In ten years, other concepts have emerged up, the so-called &lt;a href="http://en.wikipedia.org/wiki/Content_management_system"&gt;CMS&lt;/a&gt;. The idea behind them is also  simplifying  published information by providing a predefined frame where putting texts and images...&lt;br /&gt;Obviously this initial precept has been perverted, and many users wanted more and more functionalities and customization facilities... This historical direction is enabled by the use of new technics like the ones found in the web 2.0, ie javascript, Ajax, Flash, ... The result is the emergence of more and more complex CMS (joomla, Drupal, ...)  where customization is becoming more and more a programming task without using the words.&lt;br /&gt;Wikis (XWiki, Twiki, Editme, Confluence...) follow the same path ; we want, need always more functionnalities like blog, rss readers, agenda, and so on...&lt;br /&gt;I think we are today to a conjunction point where finally the differences between wikis and CMS are very narrow... But it is still to different worlds for the developpers ;), not for the users. It recalls me in mind engineers in the 80' who used to develop either automatic systems or general purpose application... It was two worlds, and nowadays, both are industrial real time system developpers.&lt;br /&gt;So what is the future? I'm not the pythie, but I don't see how CMS and Wikis could not merge into a same concept which could revolutionize not only the way users may interect with the tools, but also the way developpers have to develop applications... Maybe the &lt;a href="http://www.lego.com/en-US/default.aspx"&gt;LEGO &lt;/a&gt;time where everything could be define graphically and interactively is going up.&lt;br /&gt;The work of engineers will have to focus more on specifications, and retrieving information from the customers and make the application match more tightly to their &lt;span style="font-style: italic;"&gt;expressed or not&lt;/span&gt; needs...&lt;br /&gt;In a certain sense, it is the same way automotive or aerospace industries  have encountered by using  such tools like Catia or Autocad.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7081216924330892658-6018241612799834985?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/6018241612799834985/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=6018241612799834985' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/6018241612799834985'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/6018241612799834985'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2008/09/thoughts-about-wikis-and-cms.html' title='Thoughts about wikis and CMS'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-1081260765539444204</id><published>2008-09-14T08:31:00.014+02:00</published><updated>2008-09-14T09:11:52.470+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='collaborative development'/><category scheme='http://www.blogger.com/atom/ns#' term='methodology'/><category scheme='http://www.blogger.com/atom/ns#' term='software engineering'/><title type='text'>The use of mockup for specifying graphical applications</title><content type='html'>Specifying an application is the corner stone of software development success ; well performed, the end-product has a chance to be compliant with the customer needs, if not, the success is unpredictable.&lt;br /&gt;We've seen in a previous post that the specification phase consists in defining the problem domain, and especially a knowledge model in interaction with the system under study. So we have to focus on formalizing the definitions, the domain rules and the functionnalities the &lt;span style="font-weight: bold;"&gt;customer &lt;/span&gt;need.&lt;br /&gt;Many technics may be used to perform theses tasks, and especially use case diagrams, sequence diagrams, user stories, and so on...&lt;br /&gt;Once we begin to have a good understanding of the problem, we have to ensure that this understanding is in conformance with the customer one. This has to be done before starting any development of course.&lt;br /&gt;The use of a mockup is then highly recommended, especially when designing a graphical application, but obviously not only.&lt;br /&gt;There are many ways to do this :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;word documents or diagrams on paper&lt;/span&gt; : it is the old way. It is very uneffective, especially when there are many stakeholders in the decision process&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;diagramming tools like visio, smartdraw, ...&lt;/span&gt; : it is better than nothing, but we have to face to a static way of presenting the mockup... The dynamic aspect is bypassed... and yet, ergonomics is also a matter of dynamics&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;graphics tools like photoshop, paintshoppro,&lt;/span&gt; .. : the result is smarter than with the former tools, but the result is the same. We may also introduce confusion while mixing application design, and presentation design, which are two different things in my opinion. We also need some specialists to perform this task.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;development tools like dreamweaver, eclipse, visual studio&lt;/span&gt; : in that case we can have dynamics and then have  relevant advices from the customers. The counterpart is a development time which is not compliant with the iterative and quick process of specification. By experience, it is a very consuming task. The use of &lt;a href="http://code.google.com/webtoolkit/"&gt;GWT &lt;/a&gt;or similar frameworks may nevertheless be taken into account to reduce the drawback. But the collaborative aspect of the specification is absent.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;wikis like &lt;/span&gt;&lt;a style="font-weight: bold;" href="http://www.blogger.com/sites.google.com"&gt;google sites&lt;/a&gt;&lt;span style="font-weight: bold;"&gt; or &lt;/span&gt;&lt;a href="http://www.editme.com/"&gt;&lt;span style="font-weight: bold;"&gt;editme&lt;/span&gt; &lt;/a&gt;: it is an alternative way of performing the mockup ; it is quite easy to use, it is a collaborative (a major point, we may for instance leave comments on each page), quick to develop. But up to know, we still lack of ready to use components/wireframes to simplify the development. Another alternative is to use powerpoint to do this, but it is less collaborative.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;specialized tools like &lt;/span&gt;&lt;a style="font-weight: bold;" href="http://www.axure.com/"&gt;Axure &lt;/a&gt;&lt;span style="font-weight: bold;"&gt;ones&lt;/span&gt; : the goal of this kind of tools is to help the specifier to quickyl develop mockup by combining the advantages of all the former solutions described here. Of course it is not gratis, but I think this approach is the right one. &lt;/li&gt;&lt;/ul&gt;As said previously, I thing we have to dissociate the functional mockup to the graphical design.&lt;br /&gt;The use of &lt;a href="http://userpathways.com/2008/06/26/the-what-when-and-why-of-wireframes/"&gt;wireframes &lt;/a&gt;can be very helpful to do this (another &lt;a href="http://www.boxesandarrows.com/view/html_wireframes_and_prototypes_all_gain_and_no_pain"&gt;link&lt;/a&gt;).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7081216924330892658-1081260765539444204?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/1081260765539444204/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=1081260765539444204' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/1081260765539444204'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/1081260765539444204'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2008/09/use-of-mockup-for-specifying-graphical.html' title='The use of mockup for specifying graphical applications'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-937852012606655550</id><published>2008-09-05T16:13:00.007+02:00</published><updated>2008-09-05T16:41:57.262+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>Continuation diggest</title><content type='html'>What behind this obscure title? Just a web programming paradigm which is very nice and enhances greatly the way of developping web applications. It is also another way of thinking, the consequence being maybe a difficulty for many to integrate the concepts behind this expression of &lt;span style="font-style: italic;"&gt;Continuation programming&lt;/span&gt;.&lt;br /&gt;I could obviously paraphrase some articles to explain you the meaning, but I prefer to unroute you towards this good explanation : &lt;a href="http://www.intertwingly.net/blog/2005/04/13/Continuations-for-Curmudgeons"&gt;Continuations for Curmudgeons&lt;/a&gt;.&lt;br /&gt;There are some frameworks based on this - &lt;a href="http://seaside.st/"&gt;Seaside&lt;/a&gt; (Smalltalk), &lt;a href="http://borges.rubyforge.org/"&gt;Borges&lt;/a&gt; (Ruby) and &lt;a href="http://siscweb.sourceforge.net/"&gt;SISCWeb&lt;/a&gt; (Scheme) being examples. You also can find continuation in java with the&lt;a href="http://rifers.org/"&gt; RIFE/continuation &lt;/a&gt;project (&lt;a href="http://rifers.org/wiki/display/RIFE/Web+continuations"&gt;web+continuation&lt;/a&gt;).&lt;br /&gt;I let you discover quietly the concept and I wish you a good continuation.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7081216924330892658-937852012606655550?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/937852012606655550/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=937852012606655550' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/937852012606655550'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/937852012606655550'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2008/09/continuation-diggest.html' title='Continuation diggest'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-5958592922469589613</id><published>2008-09-03T13:45:00.006+02:00</published><updated>2008-09-03T13:58:04.656+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='collaborative development'/><title type='text'>Assembla, a  rapid collaborative  developpement environnement</title><content type='html'>I've already spoken about &lt;a href="http://www.rallydev.com/"&gt;RallyDev&lt;/a&gt;, &lt;a href="http://jazz.net/"&gt;Jazz &lt;/a&gt;, &lt;a href="http://www.atlassian.com/"&gt;Atlassian &lt;/a&gt;softs (concluence, jira, bamboo, ...) for the commercial collaborative development environments (CDE), or &lt;a href="http://trac.edgewall.org/"&gt;Trac &lt;/a&gt;and consors for the open sources ones.&lt;br /&gt;I would like today introduce a new comer, i.e. &lt;a href="http://www.assembla.com/"&gt;Assembla&lt;/a&gt;. It is another CDE which aims to fulfill roughly the same requirements than the Rallydev application. With Assembla you will be able to develop several products and projects in an agile manner, eg Scrum. You'll be able to trace issues liek bugs, enhancement requests, patches, requirements, but also to formalize development milestones, and so on...&lt;br /&gt;The tool is in a &lt;a href="http://en.wikipedia.org/wiki/Software_as_a_Service"&gt;SaaS &lt;/a&gt;mode and is quite affordable. It is also designed to be connected with different tools like Trac, Bugzilla, Mercurial, Subversion, ... You have the choice.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7081216924330892658-5958592922469589613?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/5958592922469589613/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=5958592922469589613' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/5958592922469589613'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/5958592922469589613'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2008/09/assembla-rapid-collaborative.html' title='Assembla, a  rapid collaborative  developpement environnement'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-1299625032004818161</id><published>2008-09-02T09:40:00.007+02:00</published><updated>2008-09-02T22:06:18.481+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='articles'/><title type='text'>Google Chrome Web Browser</title><content type='html'>I've just read this information which is new at least for me :) ; Google is going to deliver its own Web Browser which is called &lt;a href="http://www.google.com/chrome" title="Download Chrome from the google web site"&gt;Chrome&lt;/a&gt;, a new stone in the garden of Microsoft, but also of Mozilla and Apple... Google continues to canibalize everything which touches from far or near to the Web...and now to the Operating System. Android was a stone, Chrome is the next one.&lt;br /&gt;Why Chrome is so innovative? For one feature especially : every tab pane is associated to a process instead of a thread! It enables the web browser to be used as an application container...online or offline. It a certain manner, Chrome has some capaibilities of an OS, and with time, we could envisage not having needs for a complete OS, especially if Chrome runs on a Virtual Server.&lt;br /&gt;Some links :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Read/WriteWeb - &lt;a href="http://www.readwriteweb.com/archives/google_to_offer_its_own_browser_chrome.php" target="_blank" rel="nofollow"&gt;Google to Offer its Own Browser: Chrome&lt;/a&gt;&lt;/li&gt;&lt;li&gt;GigaOm - &lt;a href="http://gigaom.com/2008/09/01/google-browser-is-real-another-win-for-webkit/" target="_blank" rel="nofollow"&gt;Why is Google Releasing a Browser?&lt;/a&gt;&lt;/li&gt;&lt;li&gt;TechCrunch - &lt;a href="http://www.techcrunch.com/2008/09/01/no-joke-google-introduces-its-own-browser-with-a-cartoon/" target="_blank" rel="nofollow"&gt;No Joke: Google Introduces The Chrome Browser With A Cartoon&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Technologizer - &lt;a href="http://technologizer.com/2008/09/01/ten-questions-about-google-chrome/" target="_blank" rel="nofollow"&gt;Ten Questions About Google Chrome&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Techmeme - &lt;a href="http://www.techmeme.com/search/query?q=google+chrome&amp;amp;wm=false" target="_blank" rel="nofollow"&gt;(main articles)&lt;/a&gt;&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/7081216924330892658-1299625032004818161?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/1299625032004818161/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=1299625032004818161' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/1299625032004818161'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/1299625032004818161'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2008/09/google-chrome-web-browser.html' title='Google Chrome Web Browser'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-8092123639085754443</id><published>2008-08-31T12:02:00.005+02:00</published><updated>2008-08-31T12:07:20.677+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='development'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><category scheme='http://www.blogger.com/atom/ns#' term='language'/><title type='text'>GWT 1.5 is out</title><content type='html'>&lt;a href="http://code.google.com/webtoolkit/"&gt;GWT 1.5&lt;/a&gt; is now officially out and improves greatly GWT capabilities and features. We can say from now that GWT reached a mature state which invites you to build professional applications with.&lt;br /&gt;It is too long to enumerate all the features included in this version, but the main ones are the following:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Java 5 language support&lt;/li&gt;&lt;li&gt;Performance optimizations&lt;/li&gt;&lt;li&gt;Easier JavaScript interop&lt;/li&gt;&lt;li&gt;Prettier widgets&lt;/li&gt;&lt;li&gt;Accessibility(&lt;a href="http://www.w3.org/WAI/intro/aria"&gt;ARIA &lt;/a&gt;compliant)&lt;/li&gt;&lt;/ul&gt;Have fun trying GWT for your web developments!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7081216924330892658-8092123639085754443?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/8092123639085754443/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=8092123639085754443' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/8092123639085754443'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/8092123639085754443'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2008/08/gwt-15-is-out.html' title='GWT 1.5 is out'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-8853715353397442279</id><published>2008-08-26T18:34:00.007+02:00</published><updated>2008-08-27T10:43:44.274+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='databases'/><title type='text'>OODB</title><content type='html'>A quite short message to speak about Object Oriented Databases.  OODB had a short success in the early 90ies but suffered of the lack of performances and of the dubts about the object paradigm. 15 years later, everyone develop with an object oriented language, or modelize with UML or such a formalism.&lt;br /&gt;OODB have made a lot of progress in this laps of time, and are quite mature and efficient from now. I suggest you find out their capabilities and gains we can have not to use such frameworks like Hibernate or Ibatis to translate your domain objects into table fields... You handle only objects and it is convenient :)&lt;br /&gt;I personnaly like &lt;a href="http://www.db4o.com/"&gt;DB4O&lt;/a&gt;, but many other OODB are very nice like &lt;a href="http://www.versant.com/"&gt;Versant Object Database&lt;/a&gt;, &lt;a href="http://www.intersystems.com/cache/index.html"&gt;InterSystems Caché&lt;/a&gt;, &lt;a href="http://www.gemstone.com/"&gt;Gemstone&lt;/a&gt;, ...&lt;br /&gt;I think it is time to reconsider the ways to develop distributed applications, communicating systems by trying to simplify the job of developpers by using less and less gateway technics.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7081216924330892658-8853715353397442279?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/8853715353397442279/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=8853715353397442279' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/8853715353397442279'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/8853715353397442279'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2008/08/oodb.html' title='OODB'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-5758040581346114144</id><published>2008-07-25T08:08:00.007+02:00</published><updated>2008-08-27T10:45:03.322+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='white papers'/><category scheme='http://www.blogger.com/atom/ns#' term='articles'/><title type='text'>SDTimes</title><content type='html'>I'm back from holidays ; my brain is still lazy to write long and complex articles :)&lt;br /&gt;So I would only point out a web site on IT stuff I like a lot, ie &lt;a href="http://www.sdtimes.com/"&gt;SDTimes&lt;/a&gt;, even if many of yours already know this webzine.&lt;br /&gt;I would especially give a pointer on this &lt;a href="http://www.bz-direct.com/snbohnnx_gpltsjedp.html"&gt;excellent article&lt;/a&gt; about agile architecture proposed by the RallyDev team. Rally software is a web oriented application developped for managing agile developments, especially Scrum ones. It is well done, and efficient.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7081216924330892658-5758040581346114144?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/5758040581346114144/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=5758040581346114144' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/5758040581346114144'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/5758040581346114144'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2008/07/holidays.html' title='SDTimes'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-7474507339425610525</id><published>2008-07-24T14:06:00.011+02:00</published><updated>2008-07-24T20:27:28.537+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='white papers'/><category scheme='http://www.blogger.com/atom/ns#' term='articles'/><title type='text'>"Secrets of lightweight development success"</title><content type='html'>&lt;span style="font-family:arial;"&gt;I found a very interesting article written by &lt;span style="font-style: italic;"&gt;Bruce Tate&lt;/span&gt; some times ago. It speaks about how to perform a quite successful development by using a lightweight approach.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;There is a lot of matter to discuss, and I find many interesting thoughts in this article. I let you discover by yourself this one (it is a quite long article actually ;) ).&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="color: rgb(153, 153, 153);"&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: normal;"&gt;Secrets of lightweight development success :&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt; &lt;ul style="font-family: arial;"&gt;&lt;li&gt; &lt;a href="http://www.ibm.com/developerworks/library/os-lightweight1/"&gt;&lt;span&gt;Part 1: Core principles and philosophies&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;li&gt; &lt;a href="http://www.ibm.com/developerworks/library/os-lightweight2/"&gt;&lt;span&gt;Part 2: How to lighten up your containers&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;li&gt; &lt;a href="http://www.ibm.com/developerworks/library/os-lightweight3/"&gt;&lt;span&gt;Part 3: The emergence of Spring&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;li&gt; &lt;a href="http://www.ibm.com/developerworks/library/os-lightweight4/"&gt;&lt;span&gt;Part 4: A comparison of lightweight containers&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;li&gt; &lt;a href="http://www.ibm.com/developerworks/library/os-lightweight5/"&gt;&lt;span&gt;Part 5: Agile development at conservative companies&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;li&gt; &lt;a href="http://www.ibm.com/developerworks/library/os-lightweight6/"&gt;&lt;span&gt;Part 6: Persistence strategies&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;li&gt; &lt;a href="http://www.ibm.com/developerworks/library/os-lightweight7/"&gt;&lt;span&gt;Part 7: Java alternatives&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;This article was written in 2005, and IT goes quickly... So, even if it needs to be updated, it is still globably up to date wrt the state of art.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7081216924330892658-7474507339425610525?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/7474507339425610525/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=7474507339425610525' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/7474507339425610525'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/7474507339425610525'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2008/07/secrets-of-lightweight-development.html' title='&quot;Secrets of lightweight development success&quot;'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-1534283702159373821</id><published>2008-07-22T06:51:00.003+02:00</published><updated>2008-07-24T20:27:13.792+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='white papers'/><category scheme='http://www.blogger.com/atom/ns#' term='articles'/><title type='text'>Refcardz</title><content type='html'>Just a little post today only to put under the light an initiative of the excellent &lt;span style="font-style: italic;"&gt;dzone &lt;/span&gt;web site, ie &lt;a href="http://refcardz.dzone.com/"&gt;Refcards&lt;/a&gt;.&lt;br /&gt;Refcards are technical cheatsheets in PDF format  on major developer topics. Up to now 13 Refcardz has been written and 8 other ones are planned til September.&lt;br /&gt;Subjects are various like RSS/Atom, Glassfish, Rails, Silverlight, Spring, Depency injection and many others.&lt;br /&gt;A simple means to understand quickly main aspects of many technics.&lt;br /&gt;Enjoy!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7081216924330892658-1534283702159373821?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/1534283702159373821/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=1534283702159373821' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/1534283702159373821'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/1534283702159373821'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2008/07/refcardz.html' title='Refcardz'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-1289008159306929490</id><published>2008-07-21T07:22:00.019+02:00</published><updated>2008-07-24T20:26:25.914+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='methodology'/><category scheme='http://www.blogger.com/atom/ns#' term='software engineering'/><category scheme='http://www.blogger.com/atom/ns#' term='definitions'/><title type='text'>Thoughtfulness about specification phase</title><content type='html'>In the post series about definitions, I would like to focus today on the specification phase, and in particular on viewing this phase according to different perspectives we used to use. It is not revolutionary while we root them out "old methods" like SART or HOOD.&lt;br /&gt;First of all I would like to consider the V life cycle, which is traditionnaly used as reference for every life cycles, under the concepts of &lt;span style="font-weight: bold;"&gt;Problem &lt;/span&gt;and &lt;span style="font-weight: bold;"&gt;Solutions &lt;/span&gt;domains.&lt;br /&gt;We actually can break down the &lt;span style="font-style: italic;"&gt;V life cycle&lt;/span&gt; into two main parts, i.e.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Problem domain&lt;/span&gt; : it is the modelization from an external point of view of the real system under development, and also the requirements wrt the system to be developped. We find in this area three main types of activities, ie establishing system needs document by the customer, describing by IT guys the software specification from this document, describing then running validation tests, and qualification tests&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Solution domain&lt;/span&gt; : it is the internal view of the system under development which regroups the following formal phases : analysis, design, coding, verification testing(unit and integration testing)&lt;/li&gt;&lt;/ol&gt;In this post, we focus specifically on the specification phase which is part of  the &lt;span style="font-style: italic;"&gt;Problem domain&lt;/span&gt; area.&lt;br /&gt;The goal of the sofware specification is to provide the development team with a set of elements needed to realize in the best conditions a system which is  as close as possible from the customer needs.&lt;br /&gt;There are many means to reach this goal. We can envisage :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;simulation&lt;/li&gt;&lt;li&gt;modelisation&lt;/li&gt;&lt;li&gt;mockups and prototypes&lt;/li&gt;&lt;li&gt;free textual expression of the needs&lt;/li&gt;&lt;li&gt;formal specifications with methods like the B Method&lt;/li&gt;&lt;li&gt;...&lt;/li&gt;&lt;/ul&gt;All these methods can be used simultaneously of course, everything being a matter of means and/or time.&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span style="font-size:10;"&gt;&lt;br /&gt;&lt;span &gt;It is important to notice that the specification model pursues three goals, ie :&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;a &lt;span style="font-weight: bold;"&gt;cognitive aiming&lt;/span&gt;, ie understanding the environment of the system under development. We then speak about establishing the &lt;span style="font-weight: bold;"&gt;Knowledge model&lt;/span&gt;&lt;/li&gt;&lt;li&gt;a&lt;span style="font-weight: bold;"&gt; prescriptive aiming&lt;/span&gt;, ie undertanding interactions between the environment and the real system under development. We then speak about &lt;span style="font-weight: bold;"&gt;Requirement model &lt;/span&gt;&lt;span&gt;also known as&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; Interaction model&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;an operational aiming, &lt;/span&gt;&lt;span&gt;ie&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;&lt;span&gt;designing an effective system in order to fulfill customer needs as close as possible&lt;/span&gt;&lt;span&gt;; it is known as &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;Operational model.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_-chmCUGlNh8/SIRDlpEHNGI/AAAAAAAAAGI/XgCDYGz94NQ/s1600-h/models.PNG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp3.blogger.com/_-chmCUGlNh8/SIRDlpEHNGI/AAAAAAAAAGI/XgCDYGz94NQ/s320/models.PNG" alt="" id="BLOGGER_PHOTO_ID_5225375781613941858" border="0" /&gt;&lt;/a&gt;&lt;span style="font-style: italic;"&gt;Knowledge and Requirement models&lt;/span&gt; are part of the&lt;span style="font-weight: bold;"&gt; Problem domain&lt;/span&gt; and the &lt;span style="font-style: italic;"&gt;Operational model &lt;/span&gt;mainly  constitutes the &lt;span style="font-weight: bold;"&gt;Solution domain&lt;/span&gt;.   &lt;span style="font-style: italic;"&gt;&lt;br /&gt;Knowledge and Requirement models &lt;/span&gt;&lt;span&gt;establishment is the goal of the specification phase.&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;We'll see in later blog messages a deeper definition of thoses models.&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span style="font-size:10;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7081216924330892658-1289008159306929490?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/1289008159306929490/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=1289008159306929490' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/1289008159306929490'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/1289008159306929490'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2008/07/thoughtfulness-about-specification.html' title='Thoughtfulness about specification phase'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_-chmCUGlNh8/SIRDlpEHNGI/AAAAAAAAAGI/XgCDYGz94NQ/s72-c/models.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-4889266959201693152</id><published>2008-07-19T13:37:00.017+02:00</published><updated>2008-07-19T15:20:22.621+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='modelization'/><category scheme='http://www.blogger.com/atom/ns#' term='DSL'/><category scheme='http://www.blogger.com/atom/ns#' term='software engineering'/><category scheme='http://www.blogger.com/atom/ns#' term='CASE tool'/><category scheme='http://www.blogger.com/atom/ns#' term='meta-tooling'/><title type='text'>The AMMA project</title><content type='html'>We have spoken formerly about the IMP project, Methods, Models, and so on... I would like today to speak about the &lt;a href="http://wiki.eclipse.org/AMMA"&gt;AMMA &lt;/a&gt;project which is actually the umbrella project for different projects around model management.&lt;br /&gt;In order to perform Model Oriented Development(MOD), or also called Model Driven Development(MDD), we need advanced tools to perform modelization, model to model transformations, model merging, etc...&lt;br /&gt;It is the goal of the AMMA(Atlanmod Model Management Architecture) project developped by the INRIA AtlanMod team directed by Jean Bezivin, i.e. to propose a global platform to ensure all these tasks. It is obviouly still research projects, but some of them like the ATL project  have reached a quite mature point to be used in production.&lt;br /&gt;What are the main projects of the AMMA platform? We can find the following ones :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://wiki.eclipse.org/AM3"&gt;AM3&lt;/a&gt;(Atlanmod MegaModel Management): the goal is to help developpers to manage megamodels (models composed of models as elements), i.e. create, store, view, access, and modify these ones. In a domain where many models are handled, the need of such platform is obvious to reduce complexity and render their use possible&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://wiki.eclipse.org/AMW"&gt;AMW&lt;/a&gt;(Atlanmod Model Weaver):when we have many models, we may want to combine them or merge them. It is done by the model weaver.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.eclipse.org/m2m/atl/"&gt;ATL&lt;/a&gt;(Atlanmod Transformation Language): this project enables the developper to transform an instance of a model into another one of another model, eg a powerpoint document into an excel sheet. ATL define also a Virtual Machine to perform the tranformations efficiently. ATL is furthermore  well tooled by ADT(ATL Development toolkit) an eclipse plugin used to write transformation with the ATL language, and even debug them.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://wiki.eclipse.org/KM3"&gt;KM3&lt;/a&gt;(Kernel Meta Meta Model): it is an implementation-independent language to write &lt;a href="http://en.wikipedia.org/wiki/Meta-model" class="external text" title="http://en.wikipedia.org/wiki/Meta-model" rel="nofollow"&gt;metamodels&lt;/a&gt;, and thus to define abstract syntaxes of &lt;a href="http://en.wikipedia.org/wiki/Domain_Specific_Language" class="external text" title="http://en.wikipedia.org/wiki/Domain_Specific_Language" rel="nofollow"&gt;Domain Specific Languages&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://wiki.eclipse.org/TCS"&gt;TCS&lt;/a&gt;(Textual Concrete Syntax): it is an Eclipse/GMT component that enables the specification of textual concrete syntaxes for Domain-Specific Languages (DSLs) by attaching syntactic information to metamodels. With TCS, it is possible to parse (text-to-model) and pretty-print (model-to-text) DSL sentences. Moreover, TCS provides an Eclipse editor, which features: syntax highlighting, an outline, hyperlinks, and hovers for every DSL which syntax is represented in TCS. &lt;/li&gt;&lt;li&gt;&lt;a href="http://wiki.eclipse.org/MoDisco"&gt;MoDisco&lt;/a&gt;(Model Discovery): the goal of the project is to provide  a support for model-driven reverse engineering, i.e. principles, methodologies and tooling.&lt;/li&gt;&lt;li&gt;&lt;a href="http://wiki.eclipse.org/ACG"&gt;ACG&lt;/a&gt;(ATL VM Code Generator): it is a domain specific language designed to express the compilation of a model transformation into ASM code executable by the ATL Virtual Machine (ATL VM). &lt;/li&gt;&lt;/ul&gt;We can see that all the bricks are present in order to reach Model Driven Engineering heaven. The challenge now is to :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;provide a well packaged set of all these tools to be usable in a simple manner&lt;/li&gt;&lt;li&gt;reduce the learning curve to be adopted by developpers&lt;/li&gt;&lt;li&gt;evangelize a lot these technos&lt;/li&gt;&lt;li&gt;give evidence that there is a quite big capital gain to switch to such a technology&lt;/li&gt;&lt;/ul&gt;Nevertheless, I find promising and well thought all these projects, and I hope you'll browse them deeply after reading this post.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7081216924330892658-4889266959201693152?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/4889266959201693152/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=4889266959201693152' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/4889266959201693152'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/4889266959201693152'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2008/07/amma-project.html' title='The AMMA project'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-8146845520816222280</id><published>2008-07-18T13:32:00.010+02:00</published><updated>2008-07-19T14:16:11.328+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='definitions'/><title type='text'>Notion of Model</title><content type='html'>After having precised the concept of Method in a previous post, we're going today to define the notion of Model. I know it is obvious for the major part of you, but it is still useful to recall these concepts in mind.&lt;br /&gt;A Model is a simplified view of a reality. It captures the essential relations of the system under study. The use of models during the software development is mandatory. It enables the developper to:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;handle the complexity of the problem&lt;/li&gt;&lt;li&gt;communicate with everyone&lt;/li&gt;&lt;li&gt;be able to pursue the project with another team, contribue to the perenity of the project&lt;/li&gt;&lt;li&gt;render eventually possible automated tasks like code generation, tests and documentation&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;There has been a lot of work since few years to promote an &lt;span style="font-style: italic;"&gt;Model Oriented Development&lt;/span&gt;, where the &lt;span style="font-weight: bold; font-style: italic;"&gt;MDA &lt;/span&gt;is the most known perspective. It is clearly a trend today ; there is still maybe today a lack of simple and efficient tools to monopolize totally the attentions of the majority of developpers and decision-makers.&lt;br /&gt;&lt;br /&gt;We distinguish, to simplify, four kinds of development models :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;combinatorial models&lt;/span&gt; : output values are determined from the current input values (decision tables, truth table, karnaugh table, boolean logics, cause to effect graphs, ...)&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;sequential models&lt;/span&gt; : output values are determined from the current and past input values (FSM, Statecharts, Grafcets, petri nets, ...)&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;static models&lt;/span&gt; : describe a statical point of view of the system (class , use Cases , components , deployment, packages, ... diagrams)&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;descriptive models&lt;/span&gt; : it is often models describing a snapshot of the system ( activity, sequence, .., diagrams)&lt;/li&gt;&lt;/ul&gt;What are the elements of a model?&lt;br /&gt;&lt;br /&gt;They are the following:&lt;br /&gt;&lt;ul&gt;&lt;li&gt; &lt;span style="font-weight: bold;"&gt;Subject &lt;/span&gt;: a model must have a well defined subject, e.g. the software under test&lt;/li&gt;&lt;li&gt; &lt;span style="font-weight: bold;"&gt;Pointof view/theory&lt;/span&gt; : a mode must be based upon a referential frame and principles which enables identifying relevant information, e.g. software testing models put typically under the light the behavior and/or focus on structure or elements  aspects suspected to be bugged&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Representation &lt;/span&gt;: the formalism used is very important and must be chosen carefully to express the most aspects as possible with the less artefacts possible. The formalism must also be understood by as many people as possible&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Technics &lt;/span&gt;: models are tightly linked to the domain culture where people evolve, and are not necessarily transposable to other domains&lt;/li&gt;&lt;/ul&gt;That's all for today :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7081216924330892658-8146845520816222280?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/8146845520816222280/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=8146845520816222280' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/8146845520816222280'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/8146845520816222280'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2008/07/notion-of-model.html' title='Notion of Model'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-3288605190747095583</id><published>2008-07-16T08:45:00.018+02:00</published><updated>2008-07-16T10:03:22.055+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='methodology'/><category scheme='http://www.blogger.com/atom/ns#' term='software engineering'/><title type='text'>OpenUp, an agile method</title><content type='html'>Agility has been trendy since some years, but it is not just fashionable ; it is a right way to ensure that software development will produce a high quality software in time and matching the customer needs.&lt;br /&gt;It exists well-known agile methods like XP, Scrum, DSDM, and so on... We won't discuss today about them, but in particular of the OpenUp method which has been developped since 2 years under the umbrella of the Eclipse Consortium, right next to the EclipseWay method, the agile method directly derived from the Eclipse development scheme.&lt;br /&gt;OpenUp states for Open Unified Process, and is based upon an iterative and incremental approach.&lt;br /&gt;In my point of view, this method could match quite well the &lt;a href="http://www.ongwt.com/post/2008/07/08/GWT-and-The-Change-Function"&gt;Change function&lt;/a&gt; assertion, which stipulates that the success can be formalized by the following function :&lt;br /&gt;&lt;div style="text-align: center; font-weight: bold;"&gt;Change Function = F(Perceived Crisis/Perceived Pain of Adoption)&lt;br /&gt;&lt;/div&gt;For the &lt;span style="font-weight: bold;"&gt;Perceived crisis aspect&lt;/span&gt;, we all  actually know projects which don't end, are abandonned, or don't achieve goals the customer wanted to reach. Industrialization of the sofware process is quite far behind today industrialization in automotive, aerospace or even games domains. Agility is a pragmatic way to industrialize at low cost and in effective manner software engineering.&lt;br /&gt;For the &lt;span style="font-weight: bold;"&gt;Perceived Pain of Adoption&lt;/span&gt; aspect, I find that OpenUp is a good mix between more traditionnal concepts/vocabulary and agiles ones. For someone who understood the agility paradigm and is used to use traditionnal methododologies like for instance RUP, transition will be softer.&lt;br /&gt;&lt;br /&gt;OpenUp rests upon three angular stones :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;requirement management through the use of &lt;span style="font-style: italic;"&gt;use cases&lt;/span&gt; and scenarii&lt;/li&gt;&lt;li&gt;hazard/risk management&lt;/li&gt;&lt;li&gt;an approach clearly centered on architecture very early in the life cycle&lt;/li&gt;&lt;/ul&gt;OpenUp can be used for small projects, but it is best suitable for larger size projects IMO.&lt;br /&gt;OpenUp follows the Agile manifest too, i.e. centered on :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;the team : "people and interactions rather than process and tools"&lt;br /&gt;&lt;/li&gt;&lt;li&gt;the application : "Functionnal sofware rather than complete documentation"&lt;/li&gt;&lt;li&gt;the collaboration : "Collaboration with the customer rather than contract negocaition"&lt;/li&gt;&lt;li&gt;accepting changes : "React to changes rather than follows a predefined planning"&lt;/li&gt;&lt;/ul&gt; Moreover, OpenUp proposes the following&lt;span style="font-style: italic; font-weight: bold;"&gt; project life cycle&lt;/span&gt; in 4 phases:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Starting the project (Inception) :the goal is to get agreement of the actors of the project on what we have to do and how&lt;/li&gt;&lt;li&gt;Elaboration : the goal is to discriminate the technical risks from the non technical ones&lt;/li&gt;&lt;li&gt;Construction : the goal is to develop at the best cost a full product which can be deployed in an operational manner&lt;/li&gt;&lt;li&gt;Transition : the goal is to ensure that the software is ready to be delivered to the end-user customers&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_-chmCUGlNh8/SH2kY2cajxI/AAAAAAAAAF4/l2pt_cWrH3Y/s1600-h/openUpProcess.PNG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp0.blogger.com/_-chmCUGlNh8/SH2kY2cajxI/AAAAAAAAAF4/l2pt_cWrH3Y/s320/openUpProcess.PNG" alt="" id="BLOGGER_PHOTO_ID_5223511889658154770" border="0" /&gt;&lt;/a&gt;&lt;span style="font-style: italic;"&gt;OpenUp overal process&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;Inside each phase you have an iteration phase lifecycle, and inside this iteration phase  micro-increments (typically daily).&lt;br /&gt;It is not the topic of this post to describe in details the OpenUp method, so I  enjoin you to visit the OpenUp web site &lt;a href="http://www.eclipse.org/epf/"&gt;here &lt;/a&gt;for further information.&lt;br /&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:worddocument&gt;   &lt;w:view&gt;Normal&lt;/w:View&gt;   &lt;w:zoom&gt;0&lt;/w:Zoom&gt;   &lt;w:hyphenationzone&gt;21&lt;/w:HyphenationZone&gt;   &lt;w:punctuationkerning/&gt;   &lt;w:validateagainstschemas/&gt;   &lt;w:saveifxmlinvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;   &lt;w:ignoremixedcontent&gt;false&lt;/w:IgnoreMixedContent&gt;   &lt;w:alwaysshowplaceholdertext&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;   &lt;w:compatibility&gt;    &lt;w:breakwrappedtables/&gt;    &lt;w:snaptogridincell/&gt;    &lt;w:wraptextwithpunct/&gt;    &lt;w:useasianbreakrules/&gt;    &lt;w:dontgrowautofit/&gt;    &lt;w:usefelayout/&gt;   &lt;/w:Compatibility&gt;   &lt;w:browserlevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;  &lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:latentstyles deflockedstate="false" latentstylecount="156"&gt;  &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 10]--&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7081216924330892658-3288605190747095583?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/3288605190747095583/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=3288605190747095583' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/3288605190747095583'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/3288605190747095583'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2008/07/openup-agile-method.html' title='OpenUp, an agile method'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_-chmCUGlNh8/SH2kY2cajxI/AAAAAAAAAF4/l2pt_cWrH3Y/s72-c/openUpProcess.PNG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-3835671357013318429</id><published>2008-07-14T10:23:00.005+02:00</published><updated>2008-07-16T09:42:38.901+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='methodology'/><category scheme='http://www.blogger.com/atom/ns#' term='definitions'/><title type='text'>What is a method?</title><content type='html'>It is always valuable to get back to the basics to stand back and eventually change direction. I'll try in future posts to make returns on some notions, maybe the occasion to discuss about them with readers.&lt;br /&gt;So why not start today with the ground notion of a &lt;span style="font-style: italic;"&gt;Method&lt;/span&gt;?&lt;br /&gt;&lt;br /&gt;To make short, the object of a method is to help engineers to design a system under development by garanteeing :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;achievement of customer requirements&lt;/li&gt;&lt;li&gt;quality&lt;br /&gt;&lt;/li&gt;&lt;li&gt;deadlines and costs&lt;/li&gt;&lt;li&gt;maintenability&lt;/li&gt;&lt;li&gt;extensibility&lt;/li&gt;&lt;li&gt;safety&lt;br /&gt;&lt;/li&gt;&lt;li&gt;security&lt;/li&gt;&lt;li&gt;documentation&lt;/li&gt;&lt;li&gt;team work&lt;/li&gt;&lt;li&gt;information sharing&lt;/li&gt;&lt;li&gt;and so on...&lt;/li&gt;&lt;/ul&gt;To sum up, a method helps us to take into account  all the functionnal and non-functional requirements of the customer, expressed explicitly or not.&lt;br /&gt;&lt;br /&gt;A method must focus on three main aspects to be considered imo as a usable method :&lt;br /&gt;&lt;ol&gt;&lt;li&gt;choice of  formalisms, and artefacts&lt;/li&gt;&lt;ul&gt;&lt;li&gt;diagrams&lt;/li&gt;&lt;li&gt;elements of modelization&lt;/li&gt;&lt;li&gt;elements of representation&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;definition of a process&lt;br /&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;phases and steps&lt;/li&gt;&lt;li&gt;activities of producing artefacts&lt;/li&gt;&lt;li&gt;deliveries&lt;/li&gt;&lt;li&gt;follow up&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;instrumentation of this process&lt;/li&gt;&lt;ul&gt;&lt;li&gt;modelisation tools&lt;/li&gt;&lt;li&gt;control of the models&lt;/li&gt;&lt;li&gt;development tools&lt;/li&gt;&lt;li&gt;tests handling&lt;/li&gt;&lt;li&gt;software configuration management&lt;/li&gt;&lt;/ul&gt;&lt;/ol&gt;The method scope can be the entire lifecycle of the application development, or only a phase in this life cycle. We may even have several methods corresponding, each, to different phases and all these methods together becoming the overall method, e.g. a method for specification, another one for architrecture, another one for analysis, and again one for design. Even if I prefer a more homogeneous approach, this way of doing can be relevant when for instance specifying a domain which is very particular needs its own formalism.&lt;br /&gt;&lt;br /&gt;You'll object me that many companies, many people use methods to develop applications without using all this stuff... Sure, but what I describe here  is an ideal toolbox designed to guarantee the quality of the application wrt the customer expectations. It is a kind of roadmap. Once you have this roadmap in mind you can choose in conscience what you want to choose, what you can choose to achieve your goals and the ones of your customers. You don't undergo events, you play with them... and it is &lt;span style="font-style: italic;"&gt;in fine &lt;/span&gt;a big difference.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7081216924330892658-3835671357013318429?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/3835671357013318429/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=3835671357013318429' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/3835671357013318429'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/3835671357013318429'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2008/07/what-is-method.html' title='What is a method?'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-3489852543615727789</id><published>2008-07-12T08:16:00.009+02:00</published><updated>2008-07-12T09:06:00.696+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='collaborative development'/><category scheme='http://www.blogger.com/atom/ns#' term='software engineering'/><category scheme='http://www.blogger.com/atom/ns#' term='CASE tool'/><title type='text'>Team Concert on the Jazz Technology Platform</title><content type='html'>&lt;span style="font-style: italic;"&gt;Rational Team Concert 1.0&lt;/span&gt; was just out  on &lt;a href="http://jazz.net/"&gt;jazz.net&lt;/a&gt; one month ago. It is the first collaborative development tool based uppon the &lt;a href="http://www-306.ibm.com/software/rational/jazz/"&gt;Jazz technology platform&lt;/a&gt; initiated by &lt;span style="font-style: italic;"&gt;IBM &lt;/span&gt;to improve collaborative agile development. An edition named &lt;span style="font-style: italic;"&gt;Express-C&lt;/span&gt; is available for free.&lt;br /&gt;&lt;br /&gt;The platform is a mix of tools as &lt;a href="http://eclipse.org/"&gt;Eclipse &lt;/a&gt;plugins and web 2.0  pages, and offers all the basic features - as described by IBM- to:&lt;ul style="font-style: italic;"&gt;&lt;li&gt;Support seamless integration of tasks across the software lifecycle.&lt;/li&gt;&lt;li&gt; Facilitate team collaboration and coordination throughout the software     lifecycle.&lt;/li&gt;&lt;li&gt;Provide an extensible platform.&lt;/li&gt;&lt;li&gt;Help teams build software more effectively.&lt;/li&gt;&lt;li&gt;Support globally distributed development teams.&lt;/li&gt;&lt;li&gt;Provide solutions scalable from small teams up through large enterprises.&lt;/li&gt;&lt;li&gt;Maintain audit trails and automate bookkeeping so that teams are accountable.&lt;/li&gt;&lt;li&gt;Support UI integrations (IDE, web browser, etc.) that fit the needs of     customers.&lt;/li&gt;&lt;li&gt;Foster a broad ecosystem of tool providers, including independent software     vendors (ISVs).&lt;/li&gt;&lt;li&gt;Make software development more enjoyable.&lt;/li&gt;&lt;/ul&gt; &lt;p style="font-style: italic;"&gt;The Jazz Platform's principal role is to provide tool writers with mechanisms   to use, and rules to follow, that lead to seamlessly-integrated lifecycle tools.   These mechanisms are exposed via well-defined APIs. The Jazz Platform also   provides useful building blocks and frameworks that facilitate developing new   tools.&lt;/p&gt;&lt;p&gt;A diagram is often the best means to quickly understand an architecture :&lt;/p&gt;&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_-chmCUGlNh8/SHhSWiIVYpI/AAAAAAAAAFw/Y7aQGsOQvRk/s1600-h/jazz-clients.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp1.blogger.com/_-chmCUGlNh8/SHhSWiIVYpI/AAAAAAAAAFw/Y7aQGsOQvRk/s320/jazz-clients.png" alt="" id="BLOGGER_PHOTO_ID_5222014315008451218" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-style: italic;"&gt;Jazz &lt;/span&gt;is itself developped in an agile way by using the &lt;a style="font-style: italic;" href="http://eclipse-projects.blogspot.com/2005/06/eclipse-way.html"&gt;EclipseWay &lt;/a&gt;development scheme (which is expressed itself by the &lt;a style="font-style: italic;" href="http://www.eclipse.org/epf/"&gt;ECPF &lt;/a&gt;tool). It is called &lt;span style="font-style: italic;"&gt;Open Commercial Software Development&lt;/span&gt;. &lt;/p&gt;&lt;p&gt;I tested &lt;span style="font-style: italic;"&gt;Jazz &lt;/span&gt;as early adopter one year ago, and I thought then it was a very promising platform built uppon a solid conceptual model and prooved tools. I've not yet tested the first occurence of &lt;span style="font-style: italic;"&gt;Team Concert&lt;/span&gt;, but I'll do it quite soon. My opinion is that the platform aims relative big projects with many developpers working together in a collaborative way, i.e. under a &lt;span style="font-weight: bold;"&gt;customizable &lt;/span&gt;agile approach. The result is a relative consequent tool which needs to be administered and planned in the company organization as we have to administer SCM tools in big organizations. It is obviously not a drawback, but you have to take this data into account.&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7081216924330892658-3489852543615727789?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/3489852543615727789/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=3489852543615727789' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/3489852543615727789'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/3489852543615727789'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2008/07/team-concert-on-jazz-technology.html' title='Team Concert on the Jazz Technology Platform'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_-chmCUGlNh8/SHhSWiIVYpI/AAAAAAAAAFw/Y7aQGsOQvRk/s72-c/jazz-clients.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-7292150666792134629</id><published>2008-07-11T10:26:00.000+02:00</published><updated>2008-07-11T10:48:08.822+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software engineering'/><category scheme='http://www.blogger.com/atom/ns#' term='SCM'/><title type='text'>Distributed Revision Control</title><content type='html'>Software engineering can't be well processed without also a good SCM (Sofware Configuration System) policy. A corner stone of SCM is Revision Control which aims to trace along the development phase (and later) every artefact of the application under development.&lt;br /&gt;We of course know all of us  Revision Control systems like &lt;span style="font-style: italic;"&gt;CVS &lt;/span&gt;and its autoproclamated successor &lt;span style="font-style: italic;"&gt;Subversion&lt;/span&gt;. We know &lt;span style="font-style: italic;"&gt;Clearcase&lt;/span&gt;, &lt;span style="font-style: italic;"&gt;Sourcesafe&lt;/span&gt;, and so on... We know the differences between "pessimistic" and "optimisitic" approaches in revisions systems.... We also know the concept of task oriented systems which enables the developper to revision a set of changes for a specific task.&lt;br /&gt;Since several years we also have to confront "centralized" and "distributed" Revision Systems, a new battle between "ancients" and "moderns".&lt;br /&gt;I let you discover three tools of this new revision control paradigm&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.selenic.com/mercurial/wiki/"&gt;Mercurial &lt;/a&gt;: the most advanced system in my sense, and already used by several big companies or projects&lt;/li&gt;&lt;li&gt;&lt;a href="http://git.or.cz/"&gt;GIT &lt;/a&gt;: initiated by Linus Tornval, a mix between a revision Control system and a new kind of &lt;span style="font-style: italic;"&gt;files system&lt;/span&gt; itself&lt;/li&gt;&lt;li&gt;&lt;a href="http://monotone.ca/"&gt;Monotone &lt;/a&gt;: interesting, but newer, less used and tooled fup to now&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;I let you also read this &lt;a href="http://hgbook.red-bean.com/hgbookch1.html#x5-120001.3"&gt;introduction of Mercurial&lt;/a&gt; I find interesting, and which gives a very good overview of the &lt;span style="cursor: pointer;" onclick="'dr4sdgryt(event,"&gt;ins and outs of the paradigm and the tool.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7081216924330892658-7292150666792134629?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/7292150666792134629/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=7292150666792134629' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/7292150666792134629'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/7292150666792134629'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2008/07/distributed-revision-control.html' title='Distributed Revision Control'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-279652083680365157</id><published>2008-07-09T15:15:00.000+02:00</published><updated>2008-07-09T16:26:13.272+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DSL'/><category scheme='http://www.blogger.com/atom/ns#' term='meta-tooling'/><category scheme='http://www.blogger.com/atom/ns#' term='language'/><title type='text'>IMP : The IDE Meta-Tooling Platform</title><content type='html'>For the ones which are interested in language creation, I would track your attention to an Eclipse project in incubation called &lt;span style="font-weight: bold; font-style: italic;"&gt;IMP &lt;/span&gt;for &lt;span style="font-style: italic;"&gt;&lt;span style="font-weight: bold;"&gt;I&lt;/span&gt;de &lt;span style="font-weight: bold;"&gt;M&lt;/span&gt;eta-tooling &lt;span style="font-weight: bold;"&gt;P&lt;/span&gt;latform&lt;/span&gt;.&lt;br /&gt;Another eclipse sub-project you'll tell me. Maybe  but I find the idea behind this project very interesting : define a language grammar and then generate all the IDE around it making instantaneously this language a tooled language. The golden door to develop &lt;span style="font-style: italic;"&gt;DSL&lt;/span&gt;, the graal of the next years.&lt;br /&gt;A language is actually a good language not only because of the intrinsic quality of the language itself, but also the community around it. And the best way to make growing quite quickly this community is to have tools, and more, high-performance tools.&lt;br /&gt;IMP(formerly SAFARI) has its roots in a project called "Universal IDE" which was started by &lt;a href="mailto:laffrac@us.ibm.com"&gt;Chris Laffra&lt;/a&gt; in 2004. Here is the description of the project itself :&lt;br /&gt;"&lt;span style="font-style: italic;"&gt;The Eclipse IMP's purpose is to develop a set of extensible frameworks and exemplary    tools built on the Eclipse platform that ease the creation of IDEs for programming    languages (new or otherwise) that do not yet enjoy full-featured Eclipse support. Our    ultimate goal is to assist language implementers in creating IDEs with a richness and    usability on par with the &lt;/span&gt;&lt;a style="font-style: italic;" href="http://www.eclipse.org/jdt/"&gt;Eclipse Java    Development Toolkit (JDT)&lt;/a&gt;&lt;span style="font-style: italic;"&gt;. In the near term, however, we intend to provide support    for a significant portion (but not all) of the JDT's functionality. It is our belief    that this is a natural next step in the evolution of the Eclipse - doing for    programming IDEs what &lt;/span&gt;&lt;a style="font-style: italic;" href="http://www.eclipse.org/home/categories/rcp.php"&gt;RCP&lt;/a&gt;&lt;span style="font-style: italic;"&gt;    does for rich UI applications.By accelerating the process of developing new IDEs, we also hope to expand the use of    Eclipse to new programming domains, further enhancing the appeal of the Eclipse    platform. In fact, we hope to encourage language design experimentation by making it    viable for language implementers and their communities to produce full-featured IDEs    with more reasonable effort than is presently possible.&lt;/span&gt;"&lt;br /&gt;You can find more information about the project &lt;a href="http://www.eclipse.org/proposals/imp/"&gt;here &lt;/a&gt;and on &lt;a href="http://www.eclipse.org/imp/"&gt;their website&lt;/a&gt;.&lt;br /&gt;It exists also several interesting projects in this area like &lt;a href="http://wiki.eclipse.org/Xtext"&gt;XText&lt;/a&gt; or &lt;a href="http://www.eclipse.org/proposals/tmf/"&gt;TMF&lt;/a&gt; or &lt;a href="http://www.eclipse.org/gmt/oaw/"&gt;openArchitectureWare.&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/7081216924330892658-279652083680365157?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/279652083680365157/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=279652083680365157' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/279652083680365157'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/279652083680365157'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2008/07/imp-ide-meta-tooling-platform.html' title='IMP : The IDE Meta-Tooling Platform'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-6040540564957390768</id><published>2008-07-08T10:32:00.000+02:00</published><updated>2008-07-09T15:12:49.949+02:00</updated><title type='text'>Bubbling world of web technologies</title><content type='html'>The world of a web application development is in a continuous state of changes ; new ideas emerge every days, some being only a rejuvenation of more older ones by new generation IT engineers.&lt;br /&gt;We may spend a lot of time in following all the IT trends, trying to evaluate some emerging technologies and then communicating our excitement or even our deception.&lt;br /&gt;Blogs, wikis, technology portals help us to spare some time of our calendar, or maybe the contrary :) This blog will be one blog more in the constellation of information providers. My goal is first to help me to share information with other people, have a return of my feelings or eventual intuitions, and finally communicating with people sharing the same interests.&lt;br /&gt;I'm curious of everything, and it is a shame for me by now to have to choose in which area focusing my attention in order not to widespread myself a lot. By my personal professional journey, I've developped some skills in sofware methodologies (traditionnal and more advanced ones), languages (OO but also synchronous, real-time, functionnal, ...), and more generally software engineering.&lt;br /&gt;So I'll speak more especially on this blog about these subjects in the forecoming posts.&lt;br /&gt;If you want to know what are my current subjects of interest, I could tell you higgledy-piggledy: RESTlets, OSGI-server, GWT, Continuation web programming, functionnal languages like OCAML and Haskell, Groovy, DSL and still Smalltalk through Seaside....&lt;br /&gt;A bientôt&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7081216924330892658-6040540564957390768?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/6040540564957390768/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=6040540564957390768' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/6040540564957390768'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/6040540564957390768'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2008/07/bubbling-world-of-web-architectures.html' title='Bubbling world of web technologies'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7081216924330892658.post-8759444979388850320</id><published>2008-07-08T10:08:00.000+02:00</published><updated>2008-07-08T10:12:30.991+02:00</updated><title type='text'>Welcome</title><content type='html'>Welcome readers in this blog which only aims to provide you with IT information, and more  especially information about Modeling, Architecture, Software engineering, and so on...&lt;br /&gt;Keep in touch.&lt;br /&gt;Regards&lt;br /&gt;Xavier&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7081216924330892658-8759444979388850320?l=it-tonic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-tonic.blogspot.com/feeds/8759444979388850320/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7081216924330892658&amp;postID=8759444979388850320' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/8759444979388850320'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7081216924330892658/posts/default/8759444979388850320'/><link rel='alternate' type='text/html' href='http://it-tonic.blogspot.com/2008/07/welcome.html' title='Welcome'/><author><name>xavier mehaut</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp3.blogger.com/_-chmCUGlNh8/SHMjDwd_UaI/AAAAAAAAAFk/q2oukwv6p70/S220/image001.png'/></author><thr:total>0</thr:total></entry></feed>
