Categories
Eclipse

Support for Lua interpreters in Koneki LDT 0.9M1Support for Lua interpreters in Koneki LDT 0.9M1

Koneki released its 0.8 version with Juno, and we plan on graduating with a 1.0 version for Kepler.
In order to stabilize our API and improve the overall quality of the product, we thought it would be better if we released a 0.9 in-between.
This 0.9 version is scheduled for the end of this year, and we just released the first milestone!

We’ve resolved over 30 (!) bugs, and the most notable feature that we added is the support for Lua interpreters in Lua Development Tools.
In 0.8, when one wanted to launch a script, it had to be done either from the command line or using an “External Tools” launch configuration.

But as of 0.9M1, it is possible to declare in the IDE the Lua interpreter(s) that are installed in your machine, and then use them for launching your Lua applications directly from Eclipse, using good ol’ Launch configurations.

Launch Lua script

More importantly, you might remember how cumbersome it was in 0.8 to debug a script. You add to first open a debugging server in the IDE, and then launch your script by appending a few lines at its beginning so as to instrument it with a debug client. It was a frustrating and error-prone process where you could forget to launch the debug server prior to launching the script, or struggle to get the debug client setup right…

Well guess what, we now also provide Debug Configurations! All the steps needed to get the debugger working are now automagically taken care of for you, making debug literally a one-click operation (F11 FTW!). Note that you still need to have luasocket installed.

Debug Lua script

Please also note that if you are on OSX, there is a slight bug that you will need to workaround until M2 is available. For obscure reasons, the environment variables available from Eclipse do not reflect the environment variables available from a regular shell.
In particular, the debugger relies on the PWD variable, that you will have to set manually to ${project_loc} in the “Environment” tab of the Debug Configuration dialog.

Have a look at the complete New & Noteworthy and use the following update site http://download.eclipse.org/koneki/releases/milestones if you want to give this milestone a whirl!

 Koneki released its 0.8 version with Juno, and we plan on graduating with a 1.0 version for Kepler.
In order to stabilize our API and improve the overall quality of the product, we thought it would be better if we released a 0.9 in-between.
This 0.9 version is scheduled for the end of this year, and we just released the first milestone!

We’ve resolved over 30 (!) bugs, and the most notable feature that we added is the support for Lua interpreters in Lua Development Tools.
In 0.8, when one wanted to launch a script, it had to be done either from the command line or using an “External Tools” launch configuration.

But as of 0.9M1, it is possible to declare in the IDE the Lua interpreter(s) that are installed in your machine, and then use them for launching your Lua applications directly from Eclipse, using good ol’ Launch configurations.

Launch Lua script

More importantly, you might remember how cumbersome it was in 0.8 to debug a script. You add to first open a debugging server in the IDE, and then launch your script by appending a few lines at its beginning so as to instrument it with a debug client. It was a frustrating and error-prone process where you could forget to launch the debug server prior to launching the script, or struggle to get the debug client setup right…

Well guess what, we now also provide Debug Configurations! All the steps needed to get the debugger working are now automagically taken care of for you, making debug literally a one-click operation (F11 FTW!). Note that you still need to have luasocket installed.

Debug Lua script

Please also note that if you are on OSX, there is a slight bug that you will need to workaround until M2 is available. For obscure reasons, the environment variables available from Eclipse do not reflect the environment variables available from a regular shell.
In particular, the debugger relies on the PWD variable, that you will have to set manually to ${project_loc} in the “Environment” tab of the Debug Configuration dialog.

Have a look at the complete New & Noteworthy and use the following update site http://download.eclipse.org/koneki/releases/milestones if you want to give this milestone a whirl!

 

Categories
Eclipse

Introducing MihiniIntroducing Mihini

About a month ago, Sierra Wireless proposed a new project under the umbrella of the M2M Industry Working Group that aims at delivering a crucial missing piece to the global architecture of the open source M2M stack this Group is trying to establish.

Mihini is a runtime technology that hides the complexity of the underlying hardware platform to a developer whose primary goal usually is pretty simple: connecting objects (power-meters, cars, digital photoframes, …) from the physical world to the Internet, therefore making their data available for consumption by web, mobile, or enterprise applications. Of course, sending data is not the only aspect of an M2M solution, and things such as being able to react to commands send from a server to the device, being able to remotely update an application, … are also important to the developer.

Mihini will allow to develop M2M applications by using the Lua programming language. We want the initial contribution to be something useful for the hackers and hobbyists community right from the beginning, by enabling M2M application development on prototyping platforms such as the BeagleBone and the RaspberryPi.

But in parallel of seeding Mihini with an initial set of features (interactions with physical ports of the system, communication using a GPRS/3G connection, …) that we think will increase the number of crazy DIY M2M solutions with Open Hardware platforms, we want to work on cleaning and establishing a solid API that addresses the recurrent pain points of M2M development. In particular, besides just enabling easy interaction with the physical inputs and outputs of a system, it is important to provide functionalities such as:

  • data management API, that allows to process data in a way that is independent from how it is being acquired from the physical devices, and from how it will eventually be transmitted on the wire. In an ideal world, reacting to the changes of a given input, consolidating its different states/values over a period of time, etc. should be more of a configuration process than writing what will very likely be boilerplate code.
  • application management API, that allows to remotely install, update and manage (stop, start, get the overall “health” by dumping some internal variables, …) applications on the field.
  • application settings management API, that allows a developer to code an application for which some parameters can be managed remotely.
  • etc.

Another kind of API that is very important when it comes to embedded/M2M frameworks is the one that third-party software can use to communicate with a running instance of the framework.
For that purpose, Mihini will expose a REST API for external applications such as (but not limited to) the Eclipse IDE to allow them to get some control on the framework in a simple manner (vs. using lower-level techniques such as e.g. RPC): what are the applications installed? how many of them are running? etc.
Besides allowing better IDE support, such an API enables the creation of administration GUIs (e.g. embedded web application run directly on the embedded device), batch provisioning tools, etc.

This diagram illustrates the high-level architecture of Mihini, and how it fits with Paho and Koneki.

.
If you are familiar with these two projects already, you’ll know that they both have a strong interest in Lua. Koneki is delivering an IDE for Lua, and Paho will soon provide an MQTT client written in Lua (currently available on Github) contributed by Andy Gelme.
Therefore it should be no surprise to you that Mihini applications will be developed using a Lua API: not only will it allow to leverage Koneki tooling and Paho communication libraries, but first and foremost we think that Lua is the best choice for developing M2M applications. It is easy to learn, easy to embed on constrained targets, and can interoperate with legacy C software very well (you might be interested in reading this excellent article from my Lua guru co-worker and future committer on Mihini, Fabien Fleutot). And there is also a pretty large community of Lua developers, with tons of available open source libraries ready to be reused! 🙂

More and more M2M at Eclipse!

You definitely should stay tuned, there is a lot to come regarding M2M in the next few weeks!
In particular, we will hold 4 webinars in September and October, we will deploy an M2M web portal on m2m.eclipse.org, … and of course we will create the Mihini project very soon, and start working on the initial contribution.

 

 

About a month ago, Sierra Wireless proposed a new project under the umbrella of the M2M Industry Working Group that aims at delivering a crucial missing piece to the global architecture of the open source M2M stack this Group is trying to establish.

Mihini is a runtime technology that hides the complexity of the underlying hardware platform to a developer whose primary goal usually is pretty simple: connecting objects (power-meters, cars, digital photoframes, …) from the physical world to the Internet, therefore making their data available for consumption by web, mobile, or enterprise applications. Of course, sending data is not the only aspect of an M2M solution, and things such as being able to react to commands send from a server to the device, being able to remotely update an application, … are also important to the developer.

Mihini will allow to develop M2M applications by using the Lua programming language. We want the initial contribution to be something useful for the hackers and hobbyists community right from the beginning, by enabling M2M application development on prototyping platforms such as the BeagleBone and the RaspberryPi.

But in parallel of seeding Mihini with an initial set of features (interactions with physical ports of the system, communication using a GPRS/3G connection, …) that we think will increase the number of crazy DIY M2M solutions with Open Hardware platforms, we want to work on cleaning and establishing a solid API that addresses the recurrent pain points of M2M development. In particular, besides just enabling easy interaction with the physical inputs and outputs of a system, it is important to provide functionalities such as:

  • data management API, that allows to process data in a way that is independent from how it is being acquired from the physical devices, and from how it will eventually be transmitted on the wire. In an ideal world, reacting to the changes of a given input, consolidating its different states/values over a period of time, etc. should be more of a configuration process than writing what will very likely be boilerplate code.
  • application management API, that allows to remotely install, update and manage (stop, start, get the overall “health” by dumping some internal variables, …) applications on the field.
  • application settings management API, that allows a developer to code an application for which some parameters can be managed remotely.
  • etc.

Another kind of API that is very important when it comes to embedded/M2M frameworks is the one that third-party software can use to communicate with a running instance of the framework.
For that purpose, Mihini will expose a REST API for external applications such as (but not limited to) the Eclipse IDE to allow them to get some control on the framework in a simple manner (vs. using lower-level techniques such as e.g. RPC): what are the applications installed? how many of them are running? etc.
Besides allowing better IDE support, such an API enables the creation of administration GUIs (e.g. embedded web application run directly on the embedded device), batch provisioning tools, etc.

This diagram illustrates the high-level architecture of Mihini, and how it fits with Paho and Koneki.

.
If you are familiar with these two projects already, you’ll know that they both have a strong interest in Lua. Koneki is delivering an IDE for Lua, and Paho will soon provide an MQTT client written in Lua (currently available on Github) contributed by Andy Gelme.
Therefore it should be no surprise to you that Mihini applications will be developed using a Lua API: not only will it allow to leverage Koneki tooling and Paho communication libraries, but first and foremost we think that Lua is the best choice for developing M2M applications. It is easy to learn, easy to embed on constrained targets, and can interoperate with legacy C software very well (you might be interested in reading this excellent article from my Lua guru co-worker and future committer on Mihini, Fabien Fleutot). And there is also a pretty large community of Lua developers, with tons of available open source libraries ready to be reused! 🙂

More and more M2M at Eclipse!

You definitely should stay tuned, there is a lot to come regarding M2M in the next few weeks!
In particular, we will hold 4 webinars in September and October, we will deploy an M2M web portal on m2m.eclipse.org, … and of course we will create the Mihini project very soon, and start working on the initial contribution.

 

 

Categories
Eclipse

Eclipse Day Toulouse 2012 – May 24, 2012 – Call for papersEclipse Day Toulouse 2012 – 24 mai 2012 – Appel à conférences

After the success of Eclipse Party 2011 last year, the Eclipse Foundation, Airbus, Obeo and Sierra Wireless invite you to Eclipse Day Toulouse, on May 24, 2012.

This year, we will have a full day event, with a particular focus on two topics for which Eclipse is an ecosystem of choice: embedded world, and Machine-to-Machine (M2M).

You should start thinking submitting your talk if you have interesting thoughts to share about:

  • Embedded & Modeling for embedded. Modeling technologies have a proven track record in terms of embedded and critical software development. Coupled with other tools and frameworks (ALM, requirements management, code analysis, …), they turn out to change the way software is being developed in the industry, and how it is being supported (usually for years, in e.g. the aircraft industry).
  • M2M & Internet of Things. According to analysts, there will literally be tens of billions of connected objects by the end of 2020! This proves to be a challenge in terms of new software engineering needs, of scalibility (Cloud computing and SaaS anyone? ;)), of management of these huge fleets of “objects” on the field… There are also many new use cases and business models around M2M and IoT that can, and will, benefit from Open Source ecosystems.

If you’d like to share an industrial use case, talk about a project you are working on, or anything related to these topics, you should submit your abstract by Apr. 15, 2012.

More information on the wiki page of the event…  and I am now looking forward to your proposals!

Photo credit: http://www.flickr.com/photos/benurs/5162576672Après le succès de l’Eclipse Party 2011, la Fondation Eclipse, Airbus, Obeo et Sierra Wireless vous invitent à participer à l’Eclipse Day Toulouse, le 24 mai 2012.

Cette année, l’évènement se déroulera sur une journée entière, et se focalisera plus particulièrement sur deux sujets pour lesquels Eclipse est une plateforme de premier choix : l’embarqué, et le Machine-to-Machine (M2M).
Aussi, nous vous invitons à soumettre dès aujourd’hui, vos propositions de sujets, en ciblant de préférence les thématiques suivantes:

  • Embarqué, et Modeling pour l’embarqué. Les approches MDA/MDD ont prouvé leur efficacité dans le domaine du développement de logiciel embarqué. Couplées à des outils de gestion des exigences, d’analyse de code, de simulation, … elles changent la donne dans le domaine du développement de logiciel industriel, et dans la manière dont ce logiciel est maintenu, souvent sur des périodes de plusieurs dizaines d’années.
  • M2M et Internet of Things. Les analystes s’accordent à dire que d’ici 2020, plusieurs dizaines de milliards d’objets seront connectés, plus ou moins indirectement, entre eux ! Cette perspective ouvre la porte à de nombreux défis en terme de développement, de scalabilité (qui a dit Cloud ? ;)), de gestion de flottes importantes “d’objets”… Ce sont aussi de nombreux business models jusqu’alors inaccessibles qui voient désormais le jour, et pour lesquels l’approche Open Source peut clairement rebattre les cartes.

Si vous souhaitez faire un retour d’expérience, présenter un projet sur lequel vous travaillez, ou quelque chose en relation avec ces sujets, nous attendons vos soumissions avant le 15 avril 2012.

Plus d’informations sur la page de wiki dédiée à l’évènement.

Crédit photo: http://www.flickr.com/photos/benurs/5162576672