Monthly Archives: March 2006

Asterisk, the Über OSS Business Model

When I first got out of university, I was hired to work at Bell-Northern Research (now fully integrated into Nortel) like a lot of Canadian kids did back around 1990. There I got a passion for the telephony industry working on software for their central office switch products. I just found it cool how someone’s voice can get digitized and then merged, switched, and split off to someone else’s phone on the other side of the planet faster than you can blink an eye. The hardware was cool and the software didn’t seem too complicated except for the protocol handling between different countries who all seemed to embrace different standards.

I often thought it would be pretty easy to turn a low cost PC into a small switch, or PBX, with the right interface cards. But, I was also pretty sure it would be way too expensive since that industry was still driven by the big telecom companies who weren’t about to sell things on the cheap.

Recently I ran across the Asterisk project (who presented at EclipseCon, BTW) which is making open source software that will let you do just that. It has tons of features for making your own PBX including voice mail, conference bridges, and voice over IP support. But where do you get the inexpensive hardware? Well, Asterisk just happens to be sponsored by Digium, who just happens to make such toys. As it turns out, one of their staffers wrote the software and they decided to just give it away for free and start an open source community around it.

That makes way too much sense. It turns out that a lot of people had the same idea that I did and a lot of them are turning that idea into businesses. These guys benefit from the free software and Digium benefits from these guys buying their hardware. Since it is open source, you can plug in other vendors’ hardware but since Digium started the project, they have the bulk of the mindshare. It’s a risk they’ve taken but if you have the confidence in your “for money” products, taking the plunge to get that mindshare can pay huge dividends.

Eclipse kind of follows this model, although not as blatant. Check out Digium’s booth at VON Spring 2006. It has Asterisk everywhere. Everyone loves an open source project that lets them do cool things, so people stop by. Once you are there you can see one of Digium’s 12 partners to buy some cool hardware and services. Everyone wins.

When people ask me how you make money with open source software, this is where I will send them. These guys are teaching a good lesson on open source business models.

CDT Reaching Uberness?

In case you didn’t hear John Duimovich, our Tools PMC lead, at the EclipseCon wrap-up, he declared that the CDT was reaching some sort of “uberness”. I had to look in Urbandictionary.com to find out what that means. “Far superior to all other things”? Well I wouldn’t go that far, ever. There are far superior things, like C++ itself 🙂 Oh and maybe the Eclipse community.

At any rate, it was a great week for the CDT. We had about 60 people brave late notice and a late timeslot to attend the CDT BOF. We also had a good number at my talk on the using the CDT on Firefox source. However the bright lights didn’t allow me to do a head count. All through the week, I was very encourage through people’s comments. It’s almost like, “Hey good thing the CDT, you guys have tough challenges given the language environment you have to deal with, but we trust you are going in the right direction. We’ll help where we can. Keep up the good work.” It is something the CDT contributor community should be proud of.

I was also very encouraged with commercial interest in the CDT. This is the source of most of the manpower contributing code to the CDT. According to my latest count, I should expect an additional seven committers over the next year, doubling our current size. This will go hugely towards allowing us to do some great things.

The best of the week came on Friday. As everyone else was meandering their way home, the CDT contributors decided to stick around and have a full day of meetings. There we closed off on 3.1 plans and took a good look at CDT 4.0 due out summer 2007. For me, anyway, it was like starting to see my dreams for the CDT come true. In addition to our plans for core model additions to help the parser deal better with build configurations, we now have plans for templates for project creation and beyond, an internal builder for MBS removing the need for make (this may actually land in 3.1.x), and JNI debugging, our uber holy grail.

With all that good news including the great new features for CDT 4.0 and the influx of new contributors, I am absolutely thrilled. It’ll be a big challenge to make sure we managed the growth and make sure we don’t stumble all over each other, but it’s a challenge that I relish in and one that may just lead us to some sort of “uberness”.

Eclipse CDT: Free forever

I’m sitting in the Eclipse vs. Visual Studio talk and the guy mentioned that Visual Studio has a free version. Really? So I went to look and I found this:

Express Quick Facts
Download Size:35-70 MB per Express Edition
Price:Visual Studio Express Editions—Free for 1 year

Well they are slowly getting it.

I still would love to see better support for Windows development in Eclipse, especially C++ (obviously) and even C#, for the student/hobbyist. Hopefully someone in the community with the time and resources can step up and help us get there.

OSes are for Wussies

I was sitting with Chris R from TI in the target management talk and Martin O from Wind River was talking about RTOSes and target management. Chris leaned over to me and said “OSes are for wussies”. We both laughed. Certain in TI’s case with DSPs, they have no need for RTOSes since their customers are generally writing tight control loops that run forever.

I have always though TI’s use of the CDT as one of the coolest applications of the CDT. And Chris is never shy to bring us crazy OS people back to earth and back to the the iron that drives all software applications and where this industry really all began.

You look at the presentations this week at EclipseCon, you can really see the breadth of problem domain that people are using Eclipse for. You’ve got everything from critical deisel injection systems to services oriented architecture for web applications to application lifecycle management to management systems for NASA missions.

Sitting in meetings with my fellow Eclipsers and you don’t get the feel of the significance of this all. But move out to the 10,000 foot view and you can easily get overwelmed at how prolific Eclipse is becoming in the software development industry. I am certainly proud to be able to put my little part into it and to be a part of this great community.

Embedded Wednesday

What a whirlwind day today at EclipseCon. It started with my presentation on the CDT. I gave an overview of the CDT and talked about how I set up the CDT to work with Firefox source code. I don’t really work on Firefox but its a great test for scalability for the CDT. It was well attended and I had some great questions as well. As usual, they focused a lot on the indexer and I had a lot of great suggestions on how people want to reuse prebuilt indexes and to share such indexes with other members of a team. All great ideas that we will hopefully get to in upcoming releases.

We then had two really good presentations from the guys working on the Device Software project and it looks like they are working on some really cool stuff to help bring together a lot of the tools that hardcore embedded developers use and are creating a community around it that embedded tool vendors can all work together and reap the benefits of the collaboration.

One of the short talks (which are really short BTW) someone from Nokia presented how they created managed build and debugger integrations with Scratchbox which makes it easy to use cross compilers for embedded targets. They have contributed their work to the Laika project. One complaint they had was about the lack of documentation on the debugger integration. I’ll have to ask them if they’d like to contribute their experience :).

I’ve met a lot of people down here and everyone is excited about the CDT. We have some pretty cool things we are starting to look at for CDT 4.0 for next year that will fulfill a lot of the vision we’ve had. More on that as we talk more about it at the Friday contributors conference.

As part of that I also got some good news about more people coming to work on the CDT. I’ll let their presence become known on the cdt-dev list as they wish. From the numbers, the CDT is on a big upswing in popularity and as the community grows, we will all benefit from eachother’s great work, which is what this open source business is all about.

One of the presenters just hit me with a T-shirt. I better listen know…

First Day At EclipseCon

Well, I made it in at around 1 p.m. on Monday to EclipseCon. After getting set up with my hotel room and finding out where the bar was, I’ve managed to run into and talk with a lot of the CDT community that are gathered here. It’s going to be a great week of getting the good word out about the CDT and it’s ever growing momentum.

The highlight of the day was the Community Awards ceremony (not the game show 🙂 where Alain Magloire from QNX won the Top Committer award for his work on the CDT. Aside from the sheer volume of code he has submitted to the CDT, Alain has always been very helpful with people out in the community. He certainly helped our team back at Rational when we were starting out writing the parser and integrating it with the CModel. We owe a lot to Alain’s committment to building a great CDT and it was great to see him rewarded for it.

More from the show as the week goes…

Eclipse 3.2 M5,eh?

I’m sure you’ve all noticed the newest milestone release for Eclipse 3.2 M5a. I’m not sure everyone knows why the Eclipse PMC had to go through the drastic measure of respinning a milestone release a few days after it was released. It is an important lesson, though, that all Eclipse plug-in developers, and probably any developer working with an evolving platform, need to think about

It all started with Bug 128866 raised by the EMF guys when they noticed that their Jet nature didn’t work anymore on M5. I also noticed it with one of our internal QNX plug-ins. The problem was that we used a dot in the extension id for our natures. For years, as both of our plug-ins originated with Eclipse 1.0, this never manifested itself in any ill behavior. However, as Jeff McAffer correctly pointed out, it has always been documented that dots weren’t allowed in extension ids. Unfortunately, the Eclipse platform has turned a blind eye to these invalid ids, until M5, of course.

The platform developers came up with a clever design to allow extension ids to have namespaces that were different than the plug-in id, which has been the default. You do this by introducing a plug-in id that, you guessed it, has dots in it to reflect that you are specifying the fully qualified id for the extension. It would have worked, if there hadn’t have been plug-ins like EMF’s and others that broke the rules.

I commend the Eclipse platform team for doing the right thing and respinning M5 to allow both the old and new schemes to work (thanks to plug-in version tags). It had to have been a tough decision, but it really shows that they place a high value on doing the right thing over the optically pleasing thing, especially when it really wasn’t their fault.

But it does point out that backwards compatibility is a hard thing to maintain. It is never a simple matter of taking your old plug-ins and having them always work on new platforms. And it’s not only the APIs but the expected behavior from the platform that can break compatibility. Plug-in developers need to be vigilant and try out their plug-ins on every platform version they want to support. It is also a good idea to try them out early so that if a problem is found it can be dealt with before it becomes too difficult to change. I’m glad that I’ve been doing that.