Tuesday 14 October 2014

Java8: Traits or Mixins? That is the question

A couple of days ago, a discussion came up in one of our mailing list about the Java 8 Interfaces Default Methods. They were named as «mixins», but I corrected them and called «traits without flattening».
After sending the mail, that last sentence kept ringing in my head, so I proposed myself to try to understand why was I calling them like that, and I came up with this post.
Please, leave your comments below and don't forget to check the blog for the part 2!
P.S.: If you didn't notice the link above, here it is again :) http://blog.10pines.com/2014/10/14/mixins-or-traits/

Tuesday 7 October 2014

Latest Arena Sprint

The last Saturday, we have had another Sprint of the Arena Project

Arena is one of the flagship projects of the Uqbar Foundation. 

Arena is an MVVM UI framework that strongly encourages the separation between model and ui classes. Although based on automatic bidirectional bindings and small single-responsability reusable controllers. Through this it clearly shape the core concepts of object design applied to UI-development.

It also implements a transparent AOP-based mechanism for object-level transactions and observability (object properties). This makes extremely easy the developer tasks in order to bind UI components with domain, by reducing repeatable domain code such as triggering events or handling transactions.

Arena is being used now since 2010 in several Argentinean Public Universities in order to teach the core concepts of object-oriented user interfaces.

The sprint was a really successful, 11 developers gathered to work in the project. 

The main objective of the Sprint was the integration of new developers to the project. Everybody getting a working development environment and through the use of pair programming everybody started improving Arena. 

The results of the sprint are amazing:

  • A new Continuous Integration effort has been started. The idea is to have an automatically integrated process to release and publish the changes. Every time a developer submit a change the process is fully automatic.
  • The whole project was migrated to Scala 2.11.
  • The documentation has been improved, with all the things the main developer show to everybody.
  • The site of Arena has been improved and fully integrated with the Maven building process.
  • We have started the process to integrate all the repositories and the migration to Git.
  • Also the process to get a copy of Arena into the main central repositories of Maven has been started.
  • Also a number of issues has been resolved and improvements added:
    • Now you can bind tooltips to the controls
    • The window can have a initial size.
    • The labels resize when the content is longer than previously
    • The tables can have a minimal number of rows to show.
    • You can know bind the visible property of panels.
    • The check boxes can be read only.
Even though the main idea was to integrate new developers to the project, we could achieve lots of issues and improvements.

Some nice pictures of the people working: