Monthly Archives: October 2006

CDT at the Eclipse Summit Europe

I’m having a great time here at Eclipse Summit Europe. It’s the first time I’ve been in Europe and it’s a pretty darn cool place to be. Watching TV and walking around the area has made me really want to learn German, which is my heritage anyway. And the architecture in this area of Esslingen is unbelievably amazing throwback to early Germany. Someone mentioned that it’s like something Disney would build.

Jet lag had kicked in hard just before my talk on the CDT DOM so I’ll apologize to everyone who was there if it seemed disorganized. I was glad to be able to get the message out on how we are doing with the CDT and the cool things we are working on. The biggest feedback was the interest in the C#DT support I want to build on the CDT. I’m just trying to prove out CDT’s multi-language capability but people are intrigued by the undertones of it all.

I also met a few people who were users of the CDT. Everyone gave me positive feedback on the performance improvements with the indexer. One group had even added a few UI features to make their lives easier and I encouraged them to contribute them back to the community, which the appeared happy to do. This is a general message I should remind everyone. If you have made little improvements to the CDT, feel free to contribute them. We’re certainly interested in spending time looking at patches especially as it improves the user experience for all.

Given the liveliness of the discussions in the foyer where we had lunches and get togethers, I’d say Eclipse is live and well in Europe. Certainly looking at the list of people who attended the CDT summit, Europe is an important place that we need to focus on more and ensure the community can easily span the oceans, and time zones…

Qemu, my favorite tool of the week

I’ve been with QNX for over a year now and I continue to learn all I can about our Neutrino operating system, and development issues faced by embedded developers in general. If I’m going to focus on tools for embedded developers, I need to get inside their shoes and walk the talk.

I’ve worked with a couple of development boards and that was pretty cool, especially when lights started flashing and it started communicating out the serial and ethernet ports. But carrying around a board, even a little one, is a bit cumbersome and not very practical. I’ve been a long time fan of VMware and have used that. But, x86 is not where the excitement is at in the mobile embedded market, so I have been looking for something that was less desktop-y to use.

Recently I ran accross an article on using Qemu, an open source processor emulator that can emulate a number of different processors and peripheral devices, to run a Debian Linux ARM installation. It also claims that on faster machines, it can even be faster than the actual ARM processors it is emulating. This is exactly what I was looking for.

So I’ve started down a journey of writing a Neutrino BSP (Board Support Package) for Qemu, which emulates the ARM Versatile Platform Baseboard. I have the programmers guide for this board which is a pretty good help, but thanks to the fact that I have the source for the emulator, if I have any questions about how certain registers work, I can just look at the implementation in Qemu. The architecture is very clean so it makes these things very easy to find. It also includes a gdb remote interface that acts like a JTAG interface so I can step through my code.

With all these goodies, I think I’ll have Neutrino up and running in this environment in no time. Very cool! There is a tutorial floating around by James Lynch on using the CDT with a tiny ARM-based board. I should write a similar tutorial on using Qemu’s ARM emulation with the CDT and make sure these environments work well. It’s a great learning tool if nothing else.

Open Source, The Double Edge Sword

I know this has been talked about a lot in the open source industry, but I’ve personally started to see concrete examples of it. Commercial adoption of open source software is a double edge sword. One the one side, it is great to have the flexibility to be able to take open source solutions, adapt them to your particular problem domain, and add the value of those solutions to your product. On the other side, it is a lot of work to do that, and in a commercial setting, lot of work == big expense.

And, of course, you really have to watch the pointy end of the sword that could kill your project, and I think that pointy end is unrealistic expectations. But, I think the industry is really starting to get that open source != free. And, unfortunately, I think a lot of it comes from war wounds, but the lesson is getting learned.

This does, however, come back to the software as a service story I keep blabbing about. Now, you can either hire and train people to do the work, or you can contract out to a services company that (hopefully) already has the trained people to do the work for you (hopefully) cheaper. It was pretty interesting then when I noticed a little-advertised feature of the Eclipse.org web site, the Services section. It lists a few companies that are offering services to the Eclipse community. It is unfortunate that there are so few and very few with a non-Enterprise focus, but the opportunity is there for those who want to take it.