Thursday, October 18, 2007

Paintball, The "Other" Planet Eclipse, and A Humble Request

The other day a bunch of us here in the lab went out paintballing as a sort of team-building event. Little did the poor saps know that I used to play every single weekend, have all my own gear, etc. Needless to say the other team was frequently punished by the steady rain of purple paint from my tricked out Classic Automag .68 hammering down upon them. Muwahahah.

Oddly enough, going out with my co-workers has bitten me with the paintball bug again, so when waiting on a build I was checking around online to see how much some of the new markers I like cost. While looking around, I saw for sale a "Planet Eclipse 07 Ego" paintball marker. "There's an Eclipse paintball marker? COOL!!!" Intrigued, I Googled further, and it seems that http://www.planeteclipse.com is the website for the paintball company called (you guessed it) Eclipse that makes this particular marker.

They even have a marker that comes in a cool purplish-blue colour that sort of fits with the theme of our favourite IDE...



So instead of giving away Eclipse mountain bikes this year, how about some cool Eclipse paintball swag? This is way cooler than a mountain bike...

Here's hoping anyway :-)

Friday, October 5, 2007

BeerClipse Meetings?

I just read Ian's blog about demo camps.

An interesting thought.

In addition to this sort of one-time thing, perhaps we could do something like the 2600 meetings. Set a standard time, like the second Friday of the month or something like that, to be the standard day for meetings. Then, people could locally organize their own meetings at that time at their local foodcourt/pub/whatever.

The 2600 meetings range from organized events with actual agendas and presentations, to informal "let's show up and shoot the breeze about hacking" meetings. The nature of the meeting is up to the organizers.

I think you could do something similar for Eclipse and have it be pretty successful. If nothing else. the promise that committers will be there will definitely draw in the user and contributer community because they'll want to corner us and ask questions. And if they don't show, there would always be stuff that we committer folk could talk about amongst ourselves over some frosty beverages.

What do people think about this idea? Would you participate on a regular basis?

Tuesday, September 25, 2007

Java Makes It Hard to Find Good Help These Days...

From the Google-alerts-are-cool department:

Leif Frenzel has posted an interesting blog entry on the difficulties of creating tools for non-Java languages in Eclipse. He argues that in order to have tools that rival JDT, you have to have complicated tools that have intimate knowledge of the syntactic structure and semantics of the user's code, and this is hampered by the inability to code plug-ins easily in anything but Java. It's hard to find for example a parser generator that can handle Haskell, unless you're willing to use a parser generator written in Haskell itself. Go read it. Interesting food for thought.

Leif argues that this makes it hard for the community to contribute, because inherently the people that are most interested in seeing support for the language in question are people that are heavy users of that language, which also means that it's likely that their primary language of choice is not Java.

This makes sense to me because I've seen it first hand when trying to hire new members of my team that works on CDT. It's difficult to find people that have both good Java skills (needed for writing plug-ins), and a good knowledge of C and C++ (needed to know what the heck our plug-ins should be doing).

Would we find it easier to get help on CDT (both in terms of new hires, and in terms of help from the community) if people could write plug-ins in C++? Hmm... maybe...

Food for thought anyway. Personally I prefer writing my plug-ins in Java, thanks.

Monday, September 10, 2007

Blog to Blog: Diversity

I was going to post a comment to Bjorn's blog entry about diversity, but I thought my response was food for thought enough (and controversial enough!) to merit its own blog entry. These thoughts have been simmering for a while.

I think diversity is good. A lot of projects need more diversity. However, I think that until the Platform has a non-IBM committer that is doing more than just contributing builds of SWT for a non-primary platform, then diversity at Eclipse is somewhat of a farce. The Platform, if anyone, should be a shining paragon of diversity and openness to the rest of the projects on Eclipse.org, but it's the number one project that people complain about with respect to diversity and openness.

It is very hard to get contributions in to the platform (often with good reason, we don't want crap in there obviously...), and as a result, it is hard to build up enough of a reputation to become a platform committer. While the platform team are good at posting plans and information, the processes that go into them are essentially closed. The day to day discussions about design and development issues do not seem to happen in an open forum. There are no public conference calls, and the mailing lists don't have significant traffic about the actual development going on in the platform. Instead they usually amount to status reports on builds and testing, peppered with the odd user question (which usually ought to have been posted to the newsgroups instead). And no folks, Bugzilla on its own does not count... not everyone has time to keep hitting refresh on Bugzilla to see what bugs are appearing and how they are going to be fixed. People at least need a heads up that "Hey, we're discussing $BIG_ISSUE over on Bugzilla #whatever, go there if you're interested in the discussion." Also, I would say that Bugzilla is not the greatest forum for discussing broader issues and project plans, etc.

In this sort of environment, it's hard to build a sense of camaraderie with the team. There is a definite "US and THEM" atmosphere. Not that the Platform people are adversarial, don't get me wrong. But, you definitely don't get the feeling they are actively trying to get newcomers into the fold. It's difficult to get enough information about what's going on in order to try to get up to speed to the point where you're on somewhat of an equal footing.

Now to be clear. I'm not trying to slag the Platform or the people that work on it. They have done a ton of awesome work over the years and we all owe a lot to them. Theirs is no easy job at the best of times. But, I do think there are things that they and other projects could be doing better, and so I'm trying to criticize constructively. Hopefully everyone takes it as such.

Now, let's contrast the status quo with the Platform project with my experience with becoming a committer on CDT. The company I was working for at the time was looking to move their IDE to the Eclipse/CDT platform. As I started coding up our integration, I started hanging on out the cdt-dev mailing list, reading and eventually participating in the in-depth requirements gathering and technical discussions that went on there. CDT conference calls were (and still are) open to the public, so I just started showing up. At first I didn't have a lot of useful things to say other than introducing myself and communicating that our company was starting to use CDT and was looking to contribute, but over time as I got ramped up, I had more meaningful things to say.

After fixing a few bugs on the 2.0 release, CDT 3.0 came along, and there were some features that I needed implemented that the commiters (of which I wasn't one yet) indicated that they didn't have time to work on. So what did I do? Well I hopped on the planning conference call and told them that I was committing to deliver patches for those features for the release. "Great!" they said, and put my items on the plan with my name next to them. I did what I promised and after the release went out I was rewarded with a nomination and subsequent election to commit rights.

The difference was the CDT gang went out of my way to make me feel like I was part of the team, even if strictly speaking I didn't have commit rights yet. Discussions and information were open enough that I could participate as nearly a first class citizen. Sure, I still had to submit patches for anything I wanted to change, and convince someone that those patches were worth committing, but that's much easier to do when you've already been collaborating as near-equals for a while. The open and collaborative nature of the project allowed me to build up an important thing: trust.

Anyway, back to the point.

I think really that the focus of the diversity rules and enforcement should not be to stop projects from starting that are not yet diverse, but instead should focus on opening up projects that already exist but are not diverse. I don't think diversity rules should get in the way of contributions. It's better to have a non-diverse project than no project at all, because it's better to have imperfect code that does something for someone, rather than have no code, which does nothing for everyone.

That being said, if a project exists and people can't contribute even when they want to, then that is a definite problem which we should be trying to fix.


Admittedly the devil is in the details, especially with a project as large and as widely consumed as the Platform, but without trying to sound heavy-handed, I think we should be looking at ways to open up it and other projects. Such changes would have to be practical. Maybe, for instance, you can't have a 100% open Platform Conference Call where anyone and everyone that dials in can say whatever they want, because you could get far too much signal to noise. But, maybe you can have a moderated call, where some people who are known and trusted (e.g. Eclipse committers) can speak freely, and others can flag questions for the moderators attention. This way information still flows, but hopefully supporting that flow is not onerous for the committers.

At any rate, I'm curious to see what's going to happen with this new diversity push. The Platform Debug team has been setting a good example as of late, and is actively trying to mentor in some new committers on the Debug sub-project. Kudos to them, and hopefully we will start seeing more things like this.

Wednesday, August 15, 2007

Staffing the #eclipse IRC channel

For a long time our wonderful one of our beloved committer reps has been harassing us committers (and rightly so) in the hopes that more of us will hang out on the #eclipse channel on irc.freenode.net and help out with user questions about our various components.

This is arguably a noble goal, but in the past I had always felt that I just plain didn't have the time to devote to this. There are a lots of new user type questions that pop up on the newsgroups and mailing lists (to the point where a couple of years ago Webmaster had to tuck the mailing lists away in a corner on the website because the lists were becoming a free-for-all). This is especially true of the platform newsgroups and mailing lists. The fact that there are so many of these types of posts is a real testament to the popularity of Eclipse though, so it's not something to complain about either. But, in essence, I was afraid that there would be a bad signal to noise ratio for me, i.e. lots of basic questions about the platform and not a lot about CDT. Given that I have other things to do with the bulk of my time, I didn't figure I could keep up with the thread of conversation in a timely fashion, because it's not like I'd have the window up in front of me while I was working (sorry zx, I haven't tried ECF yet).

Lo and behold, I found something neat a few weeks ago which changed my mind. The Chatzilla plug-in for Firefox has this cool feature called "stalk words."



My previous experience with IRC was circa the late nineties, back when I was hacking away on and doing the writing for a video game total conversion that ended up, sadly, dying (but more relevantly, I was hanging out in IRC all day and night when I should have been doing my CS assignments). Back then IRC was not really state of the art, and if you wanted to do anything cool like this you had to write mIRC scripts yourself.

Chatzilla however, makes it pretty dirt simple. Basically, you can tell Chatzilla that there are certain phrases that you are particularly interested in, and when someone types one of them, Chatzilla can be set to alert you by playing a sound and/or flashing in the task bar. Particularly useful for us committers if you want to known when people are asking questions about the Eclipse project you work on.

This has been working out pretty well for me, and I've been fielding questions about CDT for a few weeks now. If you're a committer and your project is underrepresented in IRC right now, you might want to try it out too.

Thursday, July 12, 2007

CDT Webinar

Just a reminder to everyone that Doug and I are presenting a webinar on CDT today. Here's the blurb that Lynn sent out recently:

==========================
CDT 4.0 – Reaching for Uberness
July 12, 2007 at 8:00 am PDT / 11:00 am EDT / 3:00 pm GMT/UTC
Presented by Doug Schaefer and Chris Recoskie
To register email webinar-cdt at eclipse dot org

C/C++ Development Tooling (CDT) 4.0 is our most exciting release yet bringing C/C++ developers a load of new features, quality, and performance improvements. This webinar presented by Doug Schaefer, the CDT Project Lead, will walk through all of CDT’s features from new project creation, code editing, and source navigation, to build and debug with a special focus on what’s new in CDT 4.0. New users will gain an understanding of how to use the CDT with their projects and all users will see how the improvements in CDT 4.0 make it a world class C/C++ development environment.

For more information on this and other Eclipse webinars visit http://live.eclipse.org/. Special thanks to Adobe for contributing their Adobe Acrobat Connect product to host the webinar.
==========================

Hope to see you all there!

Edit: In case you missed it live, here is the link to the recorded webinar: http://live.eclipse.org/node/293

Tuesday, June 12, 2007

Eclipse & CDT In The Scientific Community


After putting myself at the mercy of an extensive background check, I spent a week recently at Oak Ridge National Laboratory in Tennessee for a workshop centred around the Eclipse Parallel Tools Project and its usage for development of high performance, scientific applications. We had about thirty or so attendees from industry, academia, and the various U.S. national laboratories.

The workshop was largely strategic in nature (although Beth Tibbitts, Greg Watson, and Craig Rasmussen did give a packed tutorial on Eclipse, PTP, CDT, and Photran at the lab the day before the workshop). Basically we split up into groups and tried to come up with the challenges and deficiencies that we have right now with respect to Eclipse, PTP, performance analysis, debugging, and language support and services (such as the CDT).




That generated a giant list of action items, which everyone then got to vote on and hopefully sway the future development plans of all us tools developers in the room.

Greg has posted the meeting report, but in summary, two major themes won out.

1. We need remote tools.
  • These developers are creating massively parallel programs on big iron. They don't have these machines sitting on their desks, they are typically in another building, or for some, in another city. They often can't run Eclipse directly on these machines due to lack of Eclipse support (and often the OS lacks any graphical UI whatsoever). Even if they can run Eclipse on it, for some the slowdowns due to all the network traffic required inhibit their productivity significantly. Generally since these huge machines are a scarce commodity their utilization rate is high and this can mean a lot of people using the machine at the same time.
2. We need performance tools.
  • These applications are massively parallel for a reason. It's because they are doing huge simulations and/or crunching huge amounts of data. Performance is key because even in a best case scenario it often takes days to do a run. You don't want those days to turn into weeks, and so a large amount of development time goes into tweaking performance. Unfortunately, there isn't really much in the way of performance tools integrated into CDT or Photran right now. These people either need support for existing performance tools, or some new ones provided somewhere by Eclipse.org.
I created a survey asking the participants various questions about their targeted platforms, what development tools they use, how they use those tools, and more, which I'll be discussing in today's PTP monthly conference call. The results were quite interesting. I'll post about them in a follow-up soon.

I also have lots of great pictures from the tour of the lab that they gave us that I'll be sharing soon. I just have to remember to upload them when I'm at home sometime.