March 9, 2012

Solar, a web experiment

As someone interested by tooling, I often think about how to reduce frictions between the developed applications and the development tools. In other words, how to reduce the context switching cost. For two weeks, I have started to work on a new experiment, named Solar, a play module to work on your play applications directly in your browser.

I have been largely inspired by Orion and Erwan module, but I had specific goals, that's why I did not reuse most of those projects code. Actually, I would like to focus on several concerns:
  • simplicity with neither code completion nor refactoring
  • quality with continuous testing and deployment integration 
  • collaboration with code review integration 
Currently, I have implemented the following features:

  • Navigation in the application files, with the ability to edit files and create new ones. 

  • Java files edition with syntax highlighting and live compilation during the edition.

  • Router configuration file edition with syntax highlighting. 

The editor is implemented in the canvas, and it is based on Guillaume's work.

March 6, 2012

Joining Zenexity

Last week, I have joined Zenexity. Joining a new company, is a great adventure. By meeting new people and working on different projects, you learn new things and discover other ways of doing things. This leads to impassioned discussions and knowledge sharing. On my side, I am starting to dig deeper into Scala.

Zenexity is the company who created the Play framework, a java web framework, which as you probably know, drops the craziness complexity of JEE to focus on simplicity. 

In a recent presentation, I have spoken about collaboration. I notably mentioned that in the last five years applications and medias which integrate natively collaboration have known impressive success. Looking at collaboration is interesting, as it exhibits today web application concerns.

Integration of multiple data sources

Enabling collaboration means dealing with several data producers. Typically, for each you will have a connection, and one of the application responsibility will be to manage those connections. The management becomes harder when the number of producer raises. For instance, the application may reach a connections number limit, so in order to scale the application will need to detect idle producers for closing temporally their connection.

Dealing with large amout of data

When you add more potential data producer, this generally ends with more information to manage or at least more information you would like to store, for instance for statistics purpose. To achieve scalability you may choose a non relational database.     

Realtime interactions

To ease collaboration, you need to provide a way for users to interact between them. Basically each user should be able to send notifications to others, directly or indirectly, and to do it efficiently traditional polling is not efficient.

The new coming release of Play tends to tackle those concerns. It will provide powerful abstractions which will enables you to write simply reactive web applications. Applications which, integrate multiple data sources, support multiple data stores, and could use efficient bidirectional communications.