Monthly Archives: April 2010

Don’t guilt contributions, enable them

This is a bit of a response to Dave Carver’s post versus Alex Blewitt’s and a bit of a topic I’ve dealt with mentoring projects, and how I operate on the CDT project.

Over my years in open source, I’ve seen time and time again where people on projects try to find ways of getting others to come help. A common one is to beg or guilt people into contributing. “You don’t like how that works, then come fix it.” That’s easy to say. But I’ve seen that piss people off way more often than it works, and it only works in rare occasions. I think you need to be sensitive to the skill set and the ability for people to come fix it. Not everyone who uses Eclipse knows how to build plug-ins for it, or has the time to do it. Do you expect them to give up their family hours to come help you out? I sure hope not.

No, my preferred approach is to create an environment where contributions are naturally welcomed. Where those who do have the skills and the time can easily and quickly fix the things that are bugging your community. Creating such an environment isn’t easy and it comes down to a number of factors. Probably the biggest one is to make everyone feel a part of the team. Everyone’s opinion matters. And every contribution is treated like gold, whether accepted or not.

And Alex’s story is very disturbing to me. I’d rather he write about how well he and the rest of the Eclipse team have gotten Eclipse to work on the Mac.

We need a JNI helper plugin

Now that I’m back being an engineer/architect, I’m again thinking of too many projects that I want to do with the time I have. I’m getting involved in the Target Communication Framework (TCF) which has an exciting opportunity to standardize target (in this case mainly embedded targets) communication and services for the purposes of debug and data collection amongst other things.

I am also trying to make it easier to use CDT for specific platforms. Windows and Android and soon Qt are the main ones there. But I’ve run into problems with the complexity of CDT’s build system that I need work with the community to clean up.

And there is another shiny object has caught my attention and I’d love to get time on that too. Our long term holy grail on the CDT has been to support developing native libraries for Java. The debug scenarios are scary, but I’ve been thinking of another area that should be a lot more attainable.

That’s automating the creation of the code that JNI development requires. There’s two paths. One is generating skeletal C code for Java native methods. And the other is generating wrapper Java classes for C++ classes. There used to be commercial products that did that, but I’m not sure if they’re still around. And given the power of the Java and C++ parsers we have in Eclipse, and the code generation frameworks available, it shouldn’t be that hard, you would think.

I think this would be a huge benefit to JNI developers, or at least me :). The interesting thing to note is that Android had the foresight to use JNI for their native interface so there’s a new community who could use it. If anyone is interested in doing something like this, give me or the cdt-dev list a ping.

Mac gets no love

I should blog more. But twitter is so much faster. At any rate…

@timbray tweeted yesterday “Eclipse SPOD DIAF.” After getting out my magic decoder ring, I soon learned that he was complaining about the performance of Eclipse on Macs. Apparently there were memory issues in Eclipse 3.5 Cocoa that causes a lot of garbage collection (assuming I’m interpreting that correctly). That causes the pause icon to pop up while Eclipse is locked down. The so called Spinning Pizza of Death, which is being asked to Die In A Fire, or at least so my magic decoder ring told me. Kids and their fancy lingo…

I hear that’s fixed in Eclipse 3.6 and I haven’t seen it in the few times I’ve run Eclipse Helios on Mac. But it’s another episode in a long story of Mac not getting any love from the Eclipse community, or at least the contributors. The good news is that as more and more contributors are using Macs, these issues are getting addressed. But the perception has already been set free that Eclipse sucks on Macs and hopefully the Mac users are passionate about Eclipse to give it another try.

I ran into another case that confused the hell out of me last night. I was testing the new Android CDT integration I’m contributing to the Sequoyah project and had an NPE show up. So, as I do on Windows and Linux, I quickly tried to fire up my CDT workspace to take a look at the line of code the log was complaining about. You know, if you have an Eclipse running and you try to launch a second instance, it just pops up the one you have running.

From what I’ve been told, Mac applications are always singletons. You run one instance of the application and it’s able to handle multiple documents. But that doesn’t work in Eclipse because Eclipse can’t handle multiple workspaces. I remember that coming up at the e4 summit as someone wanting to do that, but at the time I didn’t get it. Now I do.

I imagine things like this will get solved over time (although the multi-workspace thing, I’m not sure). But it is a great example of how open source projects work. The only way features get done is if someone has a vested interest in getting it done. To date, there have been few Eclipse contributors with such an interest in Eclipse on Mac. Yes, that’s changing, but pretty slowly.

Now, here comes the controversial part. What you don’t see in open source much except for the few cases where projects are bankrolled by forward seeking companies with lots of money (i.e. Google) is projects investing before the need. We’ve known for a long time Mac was going to be important, the trends were pretty obvious. But open source doesn’t work that way. The funding for development isn’t strong enough to support risk like that.

Or so I think. I am curious if you agree and if you have a theory of why that is. I’m not sure how it can be changed, or if vendors who fund open source want it to change. I know of companies that don’t want it to. But the companies that do easily trump that if they can figure out how.

No, I don’t want to read e-mail on my dash

Ottawa has a small hi-tech community, at least relative to Silicon Valley South and all. So, of course, the talk still hasn’t died from RIM’s acquisition of QNX from Harman. For us ex-QNXers and lovers of the mobile space, it is good folly to try and figure out what it all means.

What it doesn’t mean is that you’ll see RIM bringing your e-mail into your car. Yes, QNX has a big chunk of the automotive operating system space, but I can’t see how RIM fits into that, despite what most of the industry pundits have to say when they first heard the news. And frankly, I worry about how advanced applications running in your dashboard is going to impact safety. I’m not going to be catching up on my e-mail while driving, that’s for sure.

No, the more interesting angle is how QNX’s Neutrino operating system will look in RIM’s smartphones. I don’t know what’s in one of those today, but my guess is that their incumbent OS is really holding them back. They have the branding to take on Apple, but I have to think there’s some technical reason whey their application development stack is relatively weak.

And I think that’s where Neutrino will help them. I’m not going to get into why I left QNX, but it certainly wasn’t faith in their technology. The microkernel architecture definitely has advantages, and I think it’s a no-brainer that they’ll be able to run RIM’s existing stack on it. And I have to assume that RIM is working on additional stacks to support things like native game development, much as Android has.

So I think this is an interesting twist in mobile and consumer electronics and could give RIM a boost. And for QNX, they achieve one of their long time dreams of running in handsets. And I’m glad for them. But I still think Linux and open systems is the better choice ;).

CDT on e4

I just got word of the available e4 Eclipse SDK test builds and thought I’d try out the CDT on it. The great news is that I had no build errors for the CDT base functionality (haven’t tried our advanced debug views yet). And I was able to create a C++ project and build it. I had issues going into debug, but I am pretty happy on how far it has come.

There’s still a lot missing, though, so there is much work ahead. And as I’ve feared the UI performance is quite bad, but there’s a long way to go to clean these things up. I’ll be keeping regular tabs on their progress and test as many of the CDT workflows as I can as the platform stabilizes.

Here’s a teaser screenshot.

From Rocks Stars to Reality

“at #eclipsecon we were rock stars, now back to reality.”

I was sitting waiting for my flight leaving SFO when this great tweet came across my Twitter feed. It came from Kim Moir, and hit on a very important issue that many of us committers face when working on Eclipse.

Many of us work for companies where open source is a means to an end. We continuously fight to explain the value of what we do to business managers driven by revenue and profit, where they measure the price they charge for product based on the value it brings to customers. And frankly, old school businesses struggle to understand that providing free open source does actually bring value to customers. So we are often under the microscope and under pressure to fight for something we dearly believe in.

But at EclipseCon, the world is upside down. People we meet there are very grateful for what we do. We are the experts they want to talk to to get the information they need. They are the people looking to join us on our mission working to each other’s benefit creating great software. Yes, there we are rock stars, or at least the community makes us feel that way. And we dearly appreciate and are humbled by it.

It’s an incredible high and one of the reasons EclipseCon is always one of the best times of my year. And, yeah, it is a bit of a depressing feeling as you start on your way home. The show has ended again for another year and it’s time to go back to our quiet offices, fighting for what we believe in.

We all dream of a world where our work is appreciated there as much as it is in the community. But it is the reality we deal with year after year. And maybe why EclipseCon is such a great time as it brings us together to celebrate the fact we’ve survived another year. Here’s to surviving again and seeing you there at EclipseCon 2011.

Next step in the Android Revolution

As everyone knows, Google has been working hard on amassing all human knowledge through their search engine, ad sense, their new DNS server, google books and many projects that haven’t been made public. I was wondering what they were going to do with all that. It could be a pretty powerful tool.
Well, we finally learned today. Google has announced the next step in the Android revolution, Google Robot. They’ve been working on a robotics project and have Android running on a Beagleboard that animates the Android at the Googleplex. They’ve also been able to reduce all human knowledge onto a single SD card that is plugged into the board and the Android has come to life.
As it turns out, it’s a pretty smart and powerful robot and has set it’s sights on taking over all governments in the world. It’s hard to argue with the strategy. At least they aren’t using that knowledge for evil.
I love Android on my Nexus One. I love Android running in Google Robot. I for one welcome our new robot overlord. All hail our new benevolent leader!