Tag Archives: community

On making standards organizations and open source communities work hand in hand

eclipse-and-standardsDid you know that the Eclipse Foundation is home to many open source implementations of industry standards?

From IETF to ISO to oneM2M or OASIS, we have many open source projects that provide industrial-grade implementations that anyone can use to evaluate a given standard, or to effectively use it in their commercial solution.

We do believe that open source is key to the adoption of standards, and in a presentation I gave last week at an Open Source Think Tank organized by IEEE, I shared some thoughts on what makes a standard successful, as well as how Eclipse has proved with recent success stories that open source and open communities are a key factor.

The two examples I used in my presentation (see the slides at the end of this post) originate from the Eclipse IoT community.

OMA (Open Mobile Alliance) LWM2M is a standard for doing device management of IoT devices (i.e remotely monitor the device’s health, upgrade its firmware over-the-air, etc.). The first drafts of the standard have been published less than 4 years ago and today, LWM2M is already used in commercial products, and has a thriving community of developers and contributors gathered around two Eclipse open source projects: Eclipse Wakaama, and Eclipse Leshan. I think you will agree that this is the kind of timeline you would like to see for all standards!

The other example is MQTT, a very popular IoT protocol that I’m sure you’ve heard about! 🙂 In just a few years, it went from a de-facto standard to an actual OASIS and ISO/IEC standard. Having a rich ecosystem of open source MQTT implementations (including Eclipse Paho clients, and the Eclipse Mosquitto server) certainly helped the standards organizations to pin down the issues that need to be fixed in the spec much faster. What’s more, open source projects will also fuel the future of the MQTT specification, as they allow for new ideas to be explored (see e.g this recent work on MQTT-SN).

My hope is that Standards Developing Organizations will start embracing open source initiatives more and more. Open source communities are a great place for innovation, and can host standard implementations that sometimes actually become reference implementation. They also complement very well the role of the SDOs, which are here to enforce some needed processes when it comes to evolving a standard, anticipating incompatibilities or corner cases, etc.

As mentioned above, here are the slides I used during my presentation. I am looking forward to hearing your comments and feedback.

Growing an open community:
3 interesting facts about Eclipse IoT

About 9 months ago, I published a blog post showing up some interesting metrics about the Eclipse IoT open-source community.

I have recently crunched the numbers again and here are 3 interesting facts about Eclipse IoT and its developer community:

A very diverse community of contributors

iot facts-01

It is one thing to develop open source IoT technology (and Eclipse is definitely not the only organization working on it) but it’s quite another thing to do this in a transparent and open manner.

At Eclipse IoT, over the last year, 125 different developers have been writing code and fixing bugs. What’s more, they come from 20+ different organizations, demonstrating that open collaboration is not only possible, it is key to ensure technology adoption and long-term support.
Leading the charge in terms of numbers of developers are: Eurotech, IBM, Sierra Wireless, LAAS-CNRS and Deutsche Telekom. Other companies involved include: Intel, IBH Systems, Cisco, itemis, innoQ, …

A solid and growing code base

iot facts-02

The Eclipse IoT portfolio is very rich (from protocols implementations, to frameworks for building IoT gateways, to tools and libraries for industrial automation), so it is no surprise that we now have a very solid code base, with over 1.8 million lines of code (yes, you read that right!).

It is also interesting to see the progression over the years, demonstrating that a majority of the projects are under actual development.

eclipse-iot-code-progression

A wide range of supported languages and platforms

iot facts-03

Not very surprisingly, as many of our projects target smart IoT gateways at the edge of the network, we have a predominance of Java in our code repositories (~70%), but our 1.8 million lines of code also contains lots of C/C++ (10%) as several of our projects target constrained embedded environments. You will also find Python, Javascript, Lua, or Go, as projects like e.g. Paho try to provide implementations across as many platforms/languages as possible.
So while we believe Java is important for IoT, in particular due to the very large ecosystem of developers familiar with it across the whole IT industry, we also recognize the importance of being language agnostic to make sure that IoT developers have access to good open source libraries for their platform of choice.

I would really like to hear your comments on these findings, and would be happy to discuss how this relates to your current experiences in the world of IoT. Feel free to use the comments below!


Note: most of the metrics related to Eclipse IoT are readily accessible from our dashboard. Some extra analysis of the source code repositories has been conducted to e.g. compute the lines of codes.

Community metrics for your eclipse.org project

When you run a project at Eclipse, you are very likely interested in getting some indicators regarding the health of your community.

And as Randall Munroe suggests, maybe these indicators will be a good way for you to extrapolate on when your project will actually rule the world 🙂

http://xkcd.com/605/ extrapolating

Download stats

One key indicator is the number of downloads for your deliverables. With Koneki, we have three main channels of distributions of our Lua IDE, Lua Development Tools:

  • Our ready-to-use RCP distro which is served by download.eclipse.org and its mirrors,
  • We are part of the Juno aggregator and serve an Eclipse feature for LDT
  • And, last but not least, we use the awesome Eclipse MarketPlace to reach even more users and simplify the installation process

Making sure you track your eclipse.org downloads

Prior to even trying to consolidate your download statistics, you have to make sure that the files you deliver are correctly tracked by the eclipse.org infrastructure.

For our RCP product, it means that we have to make sure that we use mirror URLs. Not only does it mean that it is likely that the best mirror will be picked, and the download experience will be as fast as possible for the end user, but it also means that this “hit” will be tracked by eclipse.org servers.
We’ll see in just a few moments how you can actually access the data collected by this script.

When it comes to your update sites, whether your are aggregated in the Simultaneous Release train our have separate repositories, you should have correctly configured your p2 repositories so as, again, download.eclipse.org is correctly “pinged” every time such or such IU is installed by someone.
You very likely don’t want to track all your IUs (except maybe if you have platform-specific fragments and want to track then), and will usually only track your main feature(s).

Accessing the download stats

The statistics of the files downloaded via the mirror script and p2 downloads stats mechanism mentioned earlier are accessible to all Eclipse committers via the My Foundation Portal.

marketplaceIf you are distributing stuff via the Eclipse MarketPlace, you probably already know that the Metrics tab of your project gives you access to the download stats.

Consolidating

Now that you have download stats being collected by your downloads, and installations from your update sites or via the Marketplace, I am sure you’d like to monitor them easily, right?

So hopefuly you’ll be interested in the following Ruby script:

As you can see, I need to improve the code/comment ratio 🙂 but I am sure you can tweak it to suit your needs.

The main thing that may not be obvious at first sight is that the script expects on the standard input a raw HTML corresponding to the download stats, as served by My Foundation Portal, you are interested in parsing and consolidating.
Please make sure you are in the “Daily download stats per file” view mode before running your query. For Koneki, I run the query against the partial file name “koneki” to get all the informations regarding downloads of file whose name contain “koneki”.

The script will then use regular expressions black magic to arrange your download stats, p2 repo stats, as well as MarketPlace stats (for which you can see the values are stored in the script itself, lines 109-129) into “downloadtype-date-# of downloads” triplet.

You’ll also see that, probably because of some nasty bots, some download stats are erroneous and have to be fixed manually (lines 41-79).

If all goes well, the script will output consolidated stats on stdout, … something like this:

linux.gtk.x86	2012-12-17	26
linux.gtk.x86	2012-12-15	7
linux.gtk.x86	2012-12-12	2
linux.gtk.x86	2012-12-11	1
linux.gtk.x86	2012-12-10	2
win32.win32.x86	2012-12-17	44
win32.win32.x86	2012-12-16	2
win32.win32.x86	2012-12-15	8
win32.win32.x86	2012-12-14	3
win32.win32.x86	2012-12-13	5
juno	2012-09-10	74
juno	2012-09-09	66
juno	2012-09-08	59
juno	2012-09-07	53
marketplace	2011-11-01	3
marketplace	2011-11-02	3
marketplace	2011-11-03	3
marketplace	2011-11-04	3

It should now be trivial for you to feed this into Excel, or BIRT, and create a crosstab that you can use as is, or for getting nice charts koneki stats2

Forum activity

Another great metric for evaluating the success of your community is the activity on your forum.

Since the FUDForum instance hosted at eclipse.org exposes RSS feeds for each forum, it is pretty trivial to use these feeds for knowing who posts on your forum, and when.

Again, a small Ruby script is gonna be of great help for consolidating the number of posts per day, as well as knowing who your top contributors are.

This script is way simpler than the previous one, and you should have nothing to adapt besides using your own frm_id instead of Koneki’s.
As for the downloads, you can feed the output of this script into your favorite spreadsheet, and visualize the activity on your forum.

eclipse.org resources are precious so please try to avoid running this script for digging into the whole history of your forum, especially if it is pretty large.

I hope you found this all useful, feel free to comment, fork, adapt, and improve these scripts, and share about the metrics you are monitoring!