mercredi 28 septembre 2011

Synchronizing data : Dropbox-like based on open-source stack

I had to find a solution for my backup/cloud drive needs lately. Dropbox works just fine, but the pricing is going high to fast as you want more space.

A 1To / 100Mbs dedicated server is not that expensive and provides the nice perspective of more server/web oriented hacks later on.

After trying a few open source projects in this regard (Syncany, Csync or SparkleShare) and keeping away from the desire of building my own, here is my short list :

  • Sparkleshare is very nice for things which I want to keep versions of. I really like the fact that it's keeping everything in a git repository, any file manager providing git integration will then allow me to dig through the history of files. As I'm not interested in the fact that it works on multiple platforms (linux, mac and soon windows) I still have to check if a script launching automatic git add . && git commit && git push is not going to be as reliable as SparkleShare while being lighter.
  • For non versioned directories, inotifywait + csync are just fine. (incron, a cron-like tool but using filesystem events as an input did work but is not supporting recursive watching)

I also considered Syncany but did not liked the fact that server side chunks of data are used which have no standard way of being accessed beside Syncany. I quickly had the feeling that git would do just fine in this regard, especially with a few git gc --aggressive from time to time.

I'm pretty sure using the new Java 7 filesystem notifications + jgit one could very quickly build an highly efficient and multi-platform solution. I managed to refrain myself trying it, but if you do or know someone who did, please let me know ;) edit : Mikael did start such a thing on github 

If you are an OpenSuse user here is the magic repository.

We'll see in a few month if I'm still happy with this solutions. Feel free to add a comment if you have other options !

mercredi 21 septembre 2011

Textual Adventures in Ecore + Graphical Modeler

I was cleaning up my ${HOME} folder today and found a set of demos I prepared two years ago.

I did this for a modeling course given at Polytech' . The course was about Model Driven Engineering, toward the end the student have to build a domain specific model for textual adventure games and then generate the corresponding Java app. Some students tend to go very far on this exercice buidling a fairly complex DSL.

The following demos are here to given an idea to the student of what can be done in a few minutes : a simple Ecore model

And then a graphical modeler :

And then we build Acceleo generator templates to directly map a game instance into its running Java code. It's a very interesting exercise, students are staying focused because it's about game, and at the same time it's a great example of the power of specific modeling. You don't design a game with an UML diagram, but building your own langage and using it you're quickly getting results and can evaluate many designs.

Building the complete tooling is a matter of minutes, not hours, here are the live demos :

Designing the Domain Model : vidéo

Specifying while running the Graphical Designer : part1 and part2

As a sidenote, these flash demos are based on a pretty old version of Obeo Designer, if you're interested, have a look on the latest versions which are even better  !

mercredi 14 septembre 2011

Eclipse Modeling : the definitive tutorial

One of the thing we keep hearing from the adopters is : we need more doc, not just reference documentation but also how using and combining the Eclipse Modeling components.

Richard Gronback's answer to these request was to write a book. But as we are living in a fast changing world filled with innovation it quickly got outdated.

Reinaldo de Souza, a GSOC student did an amazing work as part of the Amalgamation Project. He did prepare an awesome cross-modeling components tutorials : the design of an Android DSL using Ecore, providing a textual syntax using XText, customizing EMF editors using EEF up to generating the Android code using Acceleo.

The EMF domain model and Eclipse editors

Xtext Textual syntax for the DSL :

Acceleo to generate the Android code :

It is more than just a start, it really is a complete tutorial with step by step instruction on the wiki and the corresponding projects one can import in his workspace.

The original idea was to provide also tutorials and examples for GMF or Graphiti. It could not be done in the timeframe but anybody wanting to continue the example with the same domain model using other components is very welcome !

Now we still have to package it properly so that the adopters can get it in a nicely integrated way in their IDE.

mercredi 7 septembre 2011

Collaborative Modeling : the New Deal

Want to know how we tackle collaborative modeling @ Obeo ? Want to see live demos of consistent optimistic or painless pessimistic strategies ? Want to see more of what is going on mixing Mylyn and EMF/GEF/GMF ? Want to see live collaborative UI based on CDO/Dawn ?

Benjamin Muskalla (Tasktop), Martin Fluegge and I did prepare something for you.

All you have to do is to vote for this talk and come to EclipseCon Europe !

Live request interpreter for Acceleo 3.2

Laurent is working on an Interpreter View for Acceleo 3.2 (coming soon)

It feels good already, one can launch queries on any Editor or View, syntax higlighting works and so is completion proposals. Compilation errors are shown too.

It's the perfect companion for building your code generator, once you'll start using it you will wonder how you could live without it before

By the way Laurent is going to give more detail about it quite soon..