Did 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.
The IoT industry is slowly but steadily moving from a world of siloed, proprietary solutions, to embracing more and more open standards and open source technologies.
What’s more, the open source projects for IoT are becoming more and more integrated, and you can now find one-stop-shop open source solutions for things like programming your IoT micro controller, or deploying a scalable IoT broker in a cloud environment.
Here are the Top 5 Open Source IoT projects that you should really be watching this year.
#1 – The Things Network
LP-WAN technologies are going to be a hot topic for 2016. It's unclear who will win, but the availability of an open-source ecosystem around those is going to be key. The Things Network is a crowdsourced world-wide community for bringin LoRaWAN to the masses. Most of their backend is open-source and on Github.
#2 – VerneMQ
MQTT just got approved as an ISO standard. What else do you need to demonstrate that it's one of the key protocols for IoT? More open-source implementations!
VerneMQ is a highly scalable MQTT broker written in Erlang that is getting lots of interest if you judge by its 500 stars on Github!
#3 – RIOT OS
RIOT is a very impressive realtime operating system for IoT, with a very active community. For the first time this year, they are organizing a RIOT Summit – that certainly tells something about the maturity of the project!
#4 – Eclipse IoT
I could not not include Eclipse IoT in the list! 😉 The thing is, there really is a lot of cool stuff happening right now, and I think 2016 will be exciting to watch for Eclipse IoT. In particular, we're moving to the cloud, and projects like Eclipse Hono will provide a great foundation for building OSS-based IoT backends.
#5 – RHIOT
It's not a typo, both RIOT and... RHIOT in the same Top 5! Red Hat is already contributing to several open-source projects very relevant in an IoT context (e.g Apache Camel), and RHIOT is an interesting approach for implementing end-to-end IoT messaging.
Note: you can click on the pictures to learn more!
What about you? What are the projects you think are going to make a difference in the months to come?
In case you missed it, the upcoming IoT Summit, co-located with EclipseCon North America, is a great opportunity for you to learn about some of the projects mentioned above, so make sure to check it out!
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 🙂
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.
If 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.
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:
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
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!