Hey all. This blog records my thoughts of the day about my life on the Eclipse CDT project. I will occasionally give opinions and news regarding the Eclipse CDT - the project and its ecosystem - and on open source in general. Please feel free to comment on anything I say. I appreciate it when people are honest with me. And, please, please, consider all of these opinions mine, not of my employer.
Thursday, May 03, 2007
CDT 4.0 RC0 Now Available
This is by far the biggest CDT release we've done since the first one as far as the number of new features go which, of course, introduced a lot of risk as far as introducing bugs as well. We also need to be careful about backwards compatibility too so that users can use their old workspaces with the new CDT. The best way to help us out right now is to download the RC0 build and give it a try and raise bugs on any problems you find. Visit the CDT web page to find out how.
I've signed up to do a webinar mid July to show off the new CDT. It'll probably take that long to learn it all, too...
Tuesday, May 01, 2007
Ubuntu + Dell, Significant? You betcha.
I think this is actually a huge deal for Linux on the desktop and there are a couple of reasons why I think this will fly. First of all, Ubuntu is hugely popular in the Linux world, especially with people who are, not necessarily zealots, but really want to get into Linux with low overhead. And from what I can see, and apparently what Dell has found out, that's a lot of people. I'm probably in that category and a lot of the articles I've read about Ubuntu are written by people in that category too.
The second big reason why this is different is the support deal with Canonical. Essentially, you can use Ubuntu on a Dell system without worrying about whether the drivers will work with all the hardware you're buying. This has always been my major stumbling block with Linux (other than the crappy fonts :). I had Linux running on a Dell laptop five years ago and struggled to get things like suspend and the graphics display working correctly. This should address that. And the deal will ensure Canonical has a vested interest in making sure it works.
And vested they are. This has to be huge for Canonical. I always wondered how they intended on making money given all the investment they've made in Ubuntu to make it consumer friendly just to give it away for free. This is it, and I shouldn't be surprised. I've always thought that you can't make money on Linux by selling it in a box. You make money selling services or other products that leverage Linux, just as we do with Eclipse.
This has clearly been Canonical's strategy and they've started down a road where it'll pay off. Making Ubuntu consumer friendly has actually created a market for Linux PCs. Dell is just responding to the desires of that market. Mind you, it's not for the weak at heart and it really was a huge gamble, but luckily for Canonical, their CEO Mark Shuttleworth came with deep pockets to make it happen. But happening it is.
Monday, April 30, 2007
Zero to breakpoint in 10 seconds
Here's how:
- File->New Project.
- In the New Project Wizard, select C++ -> C++ project, click Next.
- Select the Executable project type, clicking the + and selecting one of the Hello World templates and if more than one Toolchain is listed, pick one. Type in the Project name and click Next.
- Fill in the form with information the template needs to generate your Hello World app, click Finish (or next to play with the build configurations, but the defaults are fine).
- Click the Build button in the toolbar, wait for the build to finish.
- Click the Debug button (one click debugging!) and accept the switch to the Debug perspective.
And you're done. The debugger hits the default breakpoint on main and you are set to go.
Give that we're not done yet with CDT 4, there is a caveat at the moment. The one click debugging only works with the MinGW integration. To set that up, simply run the MinGW compiler and gdb installers from www.mingw.org, or have MinGW installed in C:\MinGW. The CDT will automatically pick up the install location. We'll get the other ones (Cygwin, Linux, etc) working as by the time CDT 4 ships at the end of June.
You can't do that with Java
It's really the flexible memory management that I miss the most. Allocating memory out of the heap is expensive. That's pretty common knowledge. With Java, every Object gets allocated out of the heap. I remember the first time I ran into this early in my Java career. I had this little class that had a couple of fields that I used to store temporary information that got passed down to some other methods. I couldn't believe that I had to allocate it out of the heap. With C++ it had become second nature to declare an object and have it automatically allocated on the stack. And when the function I declared it in finished, whether due to a return or an exception, the destructor for the object gets called so you can clean up any mess. And using C++ pass by reference, I was able to do all that with minimal typing (my other mantra - I hate typing, especially with my sore finger right now).
The other cool feature of C++ is the ability to override the operator new to do your own memory management. That way you can allocate all instances of a class in a special memory pool. Or pass parameters to operator new to do anything you want. I've run into this as I've started looking closer at ray tracing algorithms (my new hobby). One of the speed ups they mentioned was allocating all contents of one of the structures in a given memory region to help leverage CPU data caches in an effort to squeeze every ounce of performance out of the machine as they can (which is really needed to get any resemblance of real-time ray tracing on today's machines). Now that's something you can't do in Java, at least not without some native code, which then isn't really Java.
Java has it's place and I love it for writing Eclipse plug-ins. But despite bold predictions by the IT industry, C/C++ will never go away as long as we continue to throw as much processing at these fancy new CPUs and GPUs as we are. For some reason, our appetite for speed continues to outstrip all that performance that the silicon vendors are working so hard to put in our hands.
Friday, April 27, 2007
Bug 160012 - The CDT Team at Work
Another component that we've been eagerly waiting for was the new project template support proposed by the gang at Symbian in London. This allows us to gather some information in the New Project wizard and generate source files and build settings based on a template. Now this proposal actually occurred pretty much in parallel with Intel's build system work, and given that, they didn't really take each other into account.
Well, once the build system was in place with M6 at the beginning of April, it was time to mesh them together. I am thrilled with how this has worked out. It was not an easy task as we had to undo assumptions that had been made. Not to mention the time frame was short with feature freeze being this weekend. But it was great to see how well the two groups worked together along with the odd input from us over here in North America. To see for yourself, check out the bug report for 160012 where the discussions happened. At last count, there were a 110 comments on it, some of them pretty lengthy.
I've done "around the world" development in a commercial setting but never at this level and never this successful. Every morning, I wake up and sift through a pile of bug updates that my friends in Europe and India have sent out. We then get a few hours where we're actually at work at the same time and the bug traffic is pretty heavy in the morning. But then tails off towards the end of the day. You always have to think about what time it is elsewhere (even though someone may still be working late - go to bed Mikhail S! :).
I think that it's a sign of a successful open source project when you have contributors from around the world with diverse needs but all fighting through the time differences to work together for the common good of the project. This is really the main reason I love working on the CDT. Helping create the world's best and hopefully soon, most popular, C/C++ IDE is pretty good too...
Wednesday, April 25, 2007
Subclipse withdraws? Someone tell Bjorn...
I got involved in this Subclipse versus Subversive debate when we were discussing moving to subversion on the cdt-dev mailing list. In the discussion of Eclipse clients, I mentioned that when I tried them I preferred Subversive. And actually, with some recent trials I did for work, I still prefer Subversive. Mark made a somewhat nasty reply to my comments. He made me feel bad for going against Subclipse. And in my searches for other peoples opinions, I more often than not saw him comment the same in support of Subclipse, and I'm sure he'll comment here. I certainly commend him for standing up for his project and I sometimes do the same for the CDT, but I try to be more polite about it.
So, I guess that means Subversive wins at Eclipse. From my seat, and others have a right to disagree, but I am talking about my seat not theirs, having one project is a good thing. In reality, I don't care who wins, but I do care that we produce a good subversion client for Eclipse and I don't see how two competing projects helps anyone. They do, or are intended to do, the exact same thing. In fact, they almost look identical. I almost had to check the features list to make sure which one I had.
But I think we have a long way to go to get subversion client support up to the same capabilities as CVS. Having one project that we can all work on will help make that happen. My intention is recommend moving the CDT to subversion over the summer, but only if the client meets our needs. That means we on the CDT have a vested interest in making that happen. And I know how to make patches and attach them to bugzillas, so I can't wait to get some time on it. And I will spend time on Subversive because it is an Eclipse project. So will others in the Eclipse community, because of that sense of community that is Eclipse. That's something I think the Subclipse guys forgot to take into consideration.
Tuesday, April 24, 2007
Ray tracing the future of Gaming
I remember back in university almost 20 years ago now a couple of buddies of mine that were doing ray tracing for their graphics class. The images they produced were pretty cool and realistic for the time. But it took overnight to generate one frame. Mind you that was on good old Sun 3's, but you certainly wouldn't think of doing this in real time, even today.
The ray tracing demos you'll find in PC Perspective article and at the OpenRT site are amazing, though. From what I've read, doing shadows in current technologies like OpenGL or DirectX is very difficult and game developers almost always take short cuts, which leaves the scenes a bit unreal. But with ray tracing, it appears to be much easier and the scenes appear much more believable, which is the end goal for all 3D animation.
What's changing is the march towards many multi-core CPUs by Intel and AMD. One of the big advantages of ray tracing it the scalability of the algorithms to parallel threads. Each pixel is determined independently of the other pixels. All you need to do is partition the screen to the cores and you get almost linear scalability in performance.
Now, mind you, the demos I saw, especially the one from the OpenRT site, used a lot of cores, mainly 32 and one was even at 48. But I imagine there's opportunities for improvement given this early stage, and even for some hardware acceleration for parts of the algorithm. But if you were wondering what you were going to do with that quad-core furnace of a chip, here's one idea. And it's pretty interesting to see that Intel caught on to this idea a couple of years ago.
Sunday, April 22, 2007
Ubuntu 7.04, has Linux's time come?
But I have a buddy, Rodney, at work who swears by Linux, especially Ubuntu. So much so, he has it installed on his laptop as his main work environment. Of course, I keep bugging him about how ugly I think it all looks, and he fires back with the cool 3D/alpha blending environment of the latest experimental extensions to X and Gnome. It's all good fun, but at the end of the day I'm happy to walk back to my desk and sit at my Windows machine.
I've been playing with the beta release of VMware Workstation 6. I'm a big fan of vmware from way back and every new major release seems to bring something new that makes me like it even more. This release brings a new UI that makes running vmware full screen a lot easier to use and more Windows friendly. The performance seems to be a bit better too, but then lately it's been pretty good anyway. I use vmware to run the x86 target of our Neutrino RTOS for testing with a target. And, of course, I use it to experiment and test with a Linux host.
So to get up and running on the vmware beta, I downloaded the latest Ubuntu 7.04 release. Rodney's been raving about it so I had to give it a try. The Ubuntu install experience is the best I've seen with any Linux distro. You boot up into a full Linux/Gnome environment off the CD, and then double click the Install icon to launch the installer. Just coming up cleanly off the Install CD gives you confidence the real thing is going to work. After that, it's just a matter if making sure all the packages you need are there. This is still a pretty harsh task that's not intended for the weak. But the package manager helps install those things quickly (once you properly guess at the names of the packages you need, like sun-java6-bin ?).
The look is still not up to Windows standards, but it seems to get better every time I try a new distro. Maybe I'm just getting more open to the idea of using Linux. Certainly if you're an engineer who knows a lot about *nix already, like taking advantage of Linux's features for embedded development such as mounting files as disks, then I think you'd be happy with the latest Ubuntu. But if you're my Mom, sorry Mom, stay on Windows. At least for now...
Friday, April 20, 2007
Fun with JTAG
JTAG debugging does have limitations. It's not overly fast, especially when compared to native debugging. Stepping through code takes around a second in the setup I have. And with most configurations, the JTAG debugger hardly works at all once virtual memory is turned on in the CPU, making process level debugging, as you normally do with OS's like Windows, Linux, QNX, etc, impossible. The biggest value of JTAG in the past has been for the initialization code that sets up the board and starts the operating system kernel. But that is starting to change though as JTAG debugger makers are figuring out how to do the virtual to physical and back translation and adding OS awareness in the debugger itself allowing for the full debug experience.
So I have the integration working now. With permission, I borrowed a lot of ideas from the Zylin Embedded CDT plug-in. Again, my hopes are to bring those guys and their customers on board to avoid the need for forking the CDT. It was pretty cool when I did my first debugger launch, and everything just worked. This is really the beauty of Eclipse and the CDT and the focus on extensibility, that makes adding new features a breeze.
Below is a picture of my set-up. I have a little TI OMAP board hooked up to a Abatron BDI2000 JTAG device hooked up to a network hub that eventually hooks up to my laptop. You can't see the screen, but trust me :), the CDT has reset the board, loaded in an image, started it up, and hit the breakpoint I had set. And you get all the CDT goodness like the variables, registers, and disassembly view. Tres cool!
My next step is to hook up qemu, the board emulator, with it's built in gdb remote stub, which works just like a JTAG device, to this whole thing so you can try it out without having to fork out money for real hardware...
Tuesday, April 17, 2007
F3, the CDT Wunder-Key
Well, I'm trying to do the same thing with the CDT. Before CDT 4, Open Declaration tended to be slow since it did a complete parse of the file you're viewing and all the files that it includes. With CDT 4, we're now only parsing the file and using the CDT index to get all the other declarations needed for that file.
As well, F3 tended to be hit and miss on whether it actually found anything. A lot of that had to do with the indexer's need for build information that is often hard to provide. Also a lot had to do with information that we hadn't collected yet, C++ template information for example.
With CDT 4, F3 promises to be a whole lot better. I'll be spending a bunch of my time as we start to wrap up CDT 4 development on making sure it finds as many definitions as it can so that it can be as useful to CDT users as it is for JDT users. The one I just added that made me think of blogging about it is #include statements. Wonder what's in that include file you #include'ing? Well move the cursor to the statement and hit F3. Bingo, there's the include file (at least as long as the index knows where it is). I look forward to adding more cool features like that.
Thursday, April 12, 2007
Microsoft is making my Linux fonts ugly
Well, the reason Windows looks better is their ClearType technology. After reading the article I tried turning it off, and sure enough, Windows sucked too.
Apparently the fuss over ClearType and FreeType, Linux's font technology, has to deal with patents that Microsoft holds on the techniques behind ClearType. With all the anti-Novell/Microsoft clauses in the GPLv3 dealing with patent protection and the essential prohibition on it, I've lost all hope. Despite what Richard Stallman may wish, Microsoft will likely never extend patent protection on ClearType to all of the Linux community which means they will have to pick the other route, i.e. to none of the community.
Which is really too bad. As much as I thank the FSF and GPL for giving us all those great GNU tools, I'm afraid that their conviction to ideals will also stunt the growth of open source, and especially Linux. The FSF may hate software patents, but they are a fact of life. And if the two worlds can't mix, then the poor user pays a price, one way or the other.
Oh, I hate Cygwin
First of all, it was a bit tricky to set up the build environment. I'm using Cygwin since Firefox would really rather be built on Linux, or in a convoluted environment that involves using Cygwin but the Microsoft tool chain, which the CDT doesn't really have support for yet. Luckily I found a web page that showed how to set it up to use the cygwin compilers. It's a little out of date but a few tweaks and I was able to get Firefox built.
Now I'm trying to get the build output into the CDT so that our cool Scanner Discovery feature can parse it and set up the include paths and symbols for the indexer. That's been tricky since the Firefox build wrapped all calls to gcc with a wrapper script which deals with converting paths, I guess. I've got that fixed, but now the source file paths used by Firefox uses the cygwin paths, i.e. /cygdrive/..., which our build output parser doesn't understand. So I'll have to introduce a new parser that does the cygpath conversion.
We've had a lot of bug reports lately on cygwin. Most of them have to do with the cygwin developers deciding not to support Windows path names any more, you know, the good ol' C:\blah. I guess understand their reasoning. Cygwin is meant to be a Linux emulation environment on Windows. I don't think that was their original intention since Cygwin actually predates all this Linux popularity, but that's what it has turned into (and even their web site now says so).
The issue for the CDT is that it isn't running under the cygwin environment. It can only deal with Windows paths. So whenever we see a cygwin path, we need to convert it. Not only that, when generating makefiles for cygwin make, we need to convert Windows paths to cygwin paths. Now, we can't do that for everything on Windows since tools like MinGW gcc does use Windows paths. It's pure evil (well maybe not that evil...)
So what this really means is that supporting Cygwin with the CDT is becoming a lot of work. This is one of the reasons I want to start promoting MinGW, a much more Windows friendly port of the gnu tool chain, as the gnu environment of choice on Windows. The problem, though, is that cygwin is very popular and easier to install and seems to have much more momentum than mingw. So we will need to continue to support both. But I'd sure like to see more of that momentum shift to MinGW. Which, in open source, that means I need to do more to help them.
Wednesday, April 11, 2007
Ada Project at Eclipse
So, why Ada? Funny enough, googling "Why Ada" returns a number of articles on that subject. This is something the Ada community has struggled with for quite a while. But from my point of view, it all comes down to writing safe code. Ada is a huge language and much of it has to do with making as hard as possible to write bad code. Code like "while (i++) *i = 42;" isn't possible. This is particularly of importance with embedded systems where flaws like this could be costly, very costly.
But Ada has also suffered from the stigma of bureaucracy. The fact that it was designed by committee for the U.S. Department of Defense (who has since dropped it as a requirement) doesn't help. Also the reference manual reads like a legal document, and there are few books out there to explain it to us regular Joe's.
From my perspective, though, I think the biggest problem with Ada has been the lack of an open source community around it. GNAT, the GNU Ada compiler has been around a while, but it isn't very straighforward to use with it's own build system. But gdb works fine with it for debug.
So, in the past, I've tried to drum up interest in Ada as an extension of the CDT at Eclipse. Aonix and AdaCore are two vendors that have done it commercially. I was thrilled when Aonix approached me about starting up such a project. And I really hope that other Ada tool vendors join in on the fun.
High quality open source solutions available to everyone really helps with growth at the grassroots level. Many universities and colleges are using the CDT for their coursework because it is freely available. The same could happen with the Eclipse ADT. But to ensure high quality, a community has to form around it to share in the work. Most Eclipse projects benefit from the spirit of "co-opetition", competitors working together for the common good of the market. This could grow the Ada market which would mean they could sell more professional tools and support. Such is the economic wheel that keeps Eclipse going and we'll see if the Ada market can do the same.
Tuesday, April 10, 2007
Final Thoughts on ESC
The thing I found disappointing, though, was the profile and location of some of the companies I think are the innovators at the moment. Timesys was one. They were involved in the CDT in the early days. They've since changed their business model from a straight embedded Linux distribution vendor to a service organization for do-it-yourself'ers. I thought it was innovative, but their booth was tiny and really tucked away and hard to find. (Mind you not much smaller and tucked away than the Eclipse booth - just kidding Ian :)
The other was CodeSourcery. I ran across these guys on the Web when investigating gnu-based ARM toolchains to play with qemu. The more I ran into their name, the more interested in their business model I became. They contribute a lot to open source, especially with the gnu toolchain (gcc, gdb). I also see then contributing to qemu for the ARM and other target support. I don't know a lot about their internal structure, but they must be doing well. Their booth was still outside the main hall but I noticed every time I walked by they were talking to potential customers. Unfortunately, I didn't have time to drop by myself to find out more. On the surface, though, they really look like a great example of an "open source business". And, they call their developers "Sourcerers". How cool is that...
But as I've stated in the past. I really think the model for all embedded companies has to, and in a lot of cases already is moving to a more service oriented approach. As Doug Gaff mentioned, the problems embedded developers are trying to solve is getting harder and harder. It is just plain too hard and expensive to hire full-time experts in every area you need. We'll see over the years if this turns out to be true and we start finding those companies hidden outside the main hall inside with their own smiling Marilyn Monroes to scan your badge.
Friday, April 06, 2007
ESC is over, bring on gdb JTAG.
One thing a few people asked me about this week was the Zylin Embedded CDT plug-in that a few vendors are starting to use in their commercial products. It essentially supports debugging using JTAG devices that use gdb as their debug engine. Those who have been around for a while have heard of Øyvind from Zylin who has been trying to get his changes into the CDT proper. For various reasons, those changes have been rejected.
But I think it's time to take a serious look at this and see if we can address his issues while maintaining current functionality. Having forks of the CDT is bad for the community, and is really bad for those vendors that have to use them because it has the potential to limit further integration possibilities, especially if APIs are changed. The objective should be to make everyone happy. Sometimes that's not possible, but in this case I think it is. And I'm making it my mission for the rest of CDT 4 to do my best to make that happen.
Thursday, April 05, 2007
Getting ready to go on stage
I had a couple of great conversations yesterday that will hopefully lead to CDT contributions. I'm still pleasantly surprised at all the people who drop by the booth who already use Eclipse or who know that they really need to be using it. That gives me a great feeling that the grassroots around Eclipse for embedded is already taking off. And I guess, when you look at the other choices, it probably should be of no surprise.
I also did a walk about yesterday trying to find booths that had Eclipse running. There were the regulars which had it front and center. And there were a few surprises. Ian found a few. And I was found a couple of more, including a surprise at the MIPS booth. This is happening to me quite often in the last year or so and it is really cool to see. It would be nice if these guys felt comfortable enough to let us know when they are using Eclipse. It is open source so they don't have to. But part of my job is to promote the CDT to get as many contributions as I can and I'd really like to show the momentum of the CDT in the industry. Which is pretty clear from my experience here at ESC, this it is growing quite well in the embedded space.
Wednesday, April 04, 2007
ESC Day 1
I spent a few hours at the Eclipse booth. As I mentioned in my last entry, I was pretty disappointed in the size and the location of the booth. But I was pleasantly surprised at the number of people who walked by and said they were starting to use Eclipse. I think by my account, most people who did walk by had something to say, which was pretty cool.
A person from a trade journal from India stopped by and I had a nice talk with her. She mentioned that all of Bangalore was using the CDT. That's a lot of software developers! I also had a couple of people who were wondering about extending the CDT for the specific needs of their projects. And I had a guy walk by and gave us a woo-hoo. I guess he likes what we're doing.
Talking with Ian, it is clear we need to find a good way to get publicize everything and start building a community around embedded. Doug Gaff and the people participating in DSDP have done a great job at getting the big players in the market involved. But I'm a grassroots kind of guy and I think there is also opportunity to get the word out to the average Joe.
My idea is to revive a tutorial someone had written about using the CDT to build a tiny app for an ARM7 chip that had no operating system and just ran on the bare metal. I'm doing work in CDT 4 to support gdb debugging with JTAG so it's perfect timing. And this was affirmed by a couple of conversations I had with guys looking for exactly that. So I'll work with Ian to get a webinar or something together, so stay tuned...
Tuesday, April 03, 2007
Hello from ESC Silicon Valley
Now, I need to thank Ian Skerret for setting up the Eclipse booth and to those that helped set up meetings with members of the trade press. And no disrespect to the Eclipse Foundation, but the Eclipse booth is pretty tiny. We talked about this at EclipseCon in the Embedded panel and I again put forth the challenge...
Eclipse is an important force in the embedded industry. Unless my Google Alerts are making up stuff, more and more embedded vendors are taking advantage of the power and flexibility of Eclipse as the foundation of their tools offerings. But Eclipse is successful because of the vendors and developers that contribute to it. Eclipse had a huge marketing impact in the Enterprise market because of the huge vendors that promoted it.
We need to see the same thing in the embedded space. We need to take that ground swell in the grassroots and promote Eclipse as the phenomenon that it is. This will go a long way towards encouraging those that are using Eclipse to contribute back and help convince more vendors to join the community. Those of us who got in early, did so because we saw the vision of what Eclipse can do in the embedded space. It's time to start shouting about it!
Friday, March 30, 2007
Get your swim suit on
Here's what you do. Go to Google maps and click get directions. Start from somewhere in North America and end somewhere in Europe.
The directions will guide you to Long Wharf in Boston and then instruct you to "Swim across the Atlantic Ocean", which apparently is 5572 kilometers. You then get out of the water in La Havre, France, and continue on your way.
I love the sense of humour software developers have. I can imagine the design discussions around putting this feature in. I'm sure they're still laughing about it, just like we are now. Now, what can we do with the CDT, hmm...
Thursday, March 29, 2007
GPLv3, freedom at what price?
But one thing that has struck me as I dig into it and read others' comments on it, is that the view of freedom put forth by Richard Stallman and the FSF may actually turn detrimental to the community instead of helping it.
There is no doubt that open source is successful today because of the GPL. The freedom for users to be able to download, possibly modify, build, and run their code is really what got a lot of developers involved in open source to begin with. And that momentum has grown and the qualify of the open source code has grown to become a serious force in the industry. But that all started in the day when most open source users were developers.
The issue I have is that the FSF does not differentiate between user and developer. But when it comes to critical systems, especially in the embedded space, I'm not sure users even want that freedom. While having GPL code in my TV is cool and I'm glad the manufacturer was able to take advantage of it, and theoretically ended up with good code cheaper than if they would have licensed something. And hopefully the developers contributed back to those open source projects to make them even better. But the last thing I want to do as a user is change that code, even though I know I could.
So while the GPLv3 tries everything in its power to ensure that the user can modify the code, my fear is that it will handcuff the developers working on this code. It's not free to them to make sure the user gets everything they need to do the modification. The manufactures can't charge for the code, but you can be sure device prices will go up if they need to ship an SDK and hardware with it.
GPL in embedded devices has always been a tricky subject, and GPLv3 seems to make it even trickier. I'm not sure the FSF is willing to listen to the concerns of embedded manufacturers, but I sure hope someone is making noise.
