Twitter github

Category “work”

The Value of Documentation in Open Source

I’ve been starting a lot of documentation work lately for the EGit/JGit projects and happened to come across this timely article from Forbes. If you don’t want to read it, the gist of it is that solid documentation is more important than you think… especially when it comes to attracting a user and developer base. Here are some quotes…

“I can report that my company receives 70% plus of our site traffic from organic sources, and our documentation generates more than half of our overall site traffic. Furthermore, over half of our lead generation is driven by our documentation.”

While the article specifically mentions commercial software, I think the lesson of having solid and findable documentation apply to the open source realm. I mean, when’s the last time you’ve come across an open source project that you praised their documentation efforts? I can maybe count two total in my lifetime. As open source developers and project leads, we tend to put documentation last and our expectation is that users would pitch in to help. As users, we just want good documentation and don’t believe it’s our responsibility to help out necessarily…

So next time you’re working on that feature, weigh it versus taking some time to document things for your users. If you’re in Eclipse land, feel free to take a look at our documentation guidelines and some examples on how to crowdsource your documentation efforts a bit.

AustinJUG and Eclipse 4.0

Last night I had the pleasure to speak at my local AustinJUG.

It was nice to catch up with some local folks and introduce people to some new Eclipse technology. In the end, we kind of got sidetracked and there was some good discussion about source control in the corporate environment versus what is going on in open source communities. Unfortunately, it seems Subversion has a stronghold in a lot of companies still. I hope our work in JGit to make a liberally licensed Git library that runs everywhere will start swaying the tide…

Eclipse and GSOC Alumni

The Google Summer of Code program for 2010 has wrapped up recently.

Eclipse participated this year and I’m not sure how all of our projects did, but I can at least tell you how things went with the project I was involved with. I and the rest of the EGit team (mostly Matthias Sohn) mentored Dariusz Luksza in providing some much needed enhancements to the EGit project. Dariusz started out with some smaller items such as adding tagging support but eventually moved on to more complicated endeavors like implementing support for the synchronize view. All I can say is that the project went really well and I recently was proud to nominate Dariusz as a committer.

In the past, there have been other successful transitions from GSOC alumni to committer. It’s even helped some people get jobs! For example, Remy Suen had to endure my mentorship four years ago or so and now he’s having fun working at IBM hacking on Eclipse 4.0 amongst other things. I’m sure there are other examples out there that aren’t coming to my mind at the moment.

In the future, it would be good to see more projects at Eclipse.org involved in GSOC and mentoring students. Just a little of your time can have a positive effect on a student and the open source community as a whole. In my opinion, working with potential contributors and more importantly students, is one of the best things we can do for ourselves within the Eclipse community to keep things vibrant.

Mylyn Reviews Bootstrapped

The ability to do code reviews in Eclipse land is going to become a lot better in the future; it looks like the Mylyn Reviews project is finally bootstrapped at Eclipse.org!

I recall meeting Mario Bernhart in Vienna about a year ago at a Eclipse DemoCamp suggesting that they move the ReviewClipse project to Eclipse.org to build a developer community and get some more attention. It looks like we are finally at that stage and I hope they consider shipping a incubation release as part of the Indigo simultaneous release. If you’re looking for more information about code reviews, Mario gave a presentation at Agile 2010 recently…

Since the Mylyn Reviews project is new, feel free to take it for a spin if you want to give feedback and help shape the projects future (this is the beauty of open source when getting involved with a project early). On a side note, I’m looking forward to enabling code reviews in Git land through git-notes and Mylyn Reviews.

Eclipse Summit Europe 2010 CFP

Just to let you know, the Eclipse Summit Europe 2010 call for participation is closing soon.

I highly recommend attending and submitting a talk if you haven’t already. I’m excited and looking forward to the conference. The timing will coincide close with the EGit and JGit 1.0 release so we should have some potential milestone builds for people to try by then. My hope is that we are in position to have the majority of the Eclipse.org community move to Git by the end of the year.

On a side note, EclipseCon 2011 planning is starting up so I plan on announcing the Program Committee in the coming weeks. Stay tuned for details!

The Eclipse Marketplace of Possibilities

I’m a fan of the Eclipse Marketplace.

It’s easy to install solutions from within Eclipse (Help -> Eclipse Marketplace…), for example, if you need Git support… simply use ‘git’ as a search term…

If you’re an Eclipse.org project, I highly recommend listing a release of your project if you want to make it easier for users to find your work. I’m a lazy user so anything that can be done to not have to enter a URL is a plus in my humble opinion.

So what’s missing? Well, I would like to see the marketplace work with other Eclipse plug-in distributors out there. I know that the marketplace supports pluggable marketplace providers as the folks at EclipseSource are taking advantage of this functionality via the Yoxos Market. However, I’m more looking at the folks within the IBM Lotus community who are doing cool things by having plug-ins for Symphony available via the web. I think both communities would benefit by having more cross-pollination with the plug-ins that would work in both environments. On top of that, I would like to see “appstore” like functionality at the marketplace in the future so people could offer their wares for sale if they wanted to. I know this isn’t easy due to the complications of selling goods in various countries and the tax laws that accompany that but we could start with a few pilot countries.

In the end, I think the marketplace makes it a lot easier to find Eclipse-related stuff and opens a lot of possibilities to make Eclipse more consumable for folks.

Git at Eclipse Webinar Next Week

Shawn Pearce and I are giving a webinar on July 13th about Understanding and Using Git at Eclipse…

The EGit project is implementing Eclipse tooling on top of JGit, the Java implementation of Git. Both EGit and JGit moved to Eclipse in May 2009 and shipped 0.8 with Helios. The EGit and JGit teams are busily working towards 0.9 which is targeted for Helios SR1 (September 2010). This webinar will give an update on the project progress and more detailed information about the design and features. A demo will illustrate how it’s used in its own development process. It will also show how Gerrit Code Review, a JGit based review system developed for the needs of the Android community, can help to further improve development processes.

Please register if you want to attend and learn more about Git and Eclipse.

On a side note, there will be a free GitTogether event October 25-27th at Google HQ. Git contributors and users alike are welcome to attend. If you’re interested in Git and in the bay area, please consider attending.

Eclipse Helios Toronto DemoCamp

Yesterday, we held the Eclipse Toronto DemoCamp at the Red Hat Canada offices.

Thirty or so people showed up and there was a lot of good presentations..

  1. Elliott Baron, Path-Sensitive Static Analysis for C/C++
  2. John Bossons, Wizards to make JPA value objects thread-safe
  3. Jason van Zyl, m2eclipse and tycho
  4. Chris Aniszczyk, Understanding and Using Git at Eclipse
  5. Ian Bull, Managing your eclipse installs
  6. Kenn Hussey, b3 Aggregator
  7. Charley Wang, C/C++ function call visualizations
  8. Andrew Overholt, Eclipse Linux Tools project

I talked about Git and demoed EGit a bit…

Afterwards, we headed to the Rose and Crown pub for drinks and food!

Overall, it was fun and thank you Eclipse Foundation for sponsoring the event!

JUnit4 @Rule’s Rule

Maybe I’ve been under a rock as of late, but I’ve been writing some tests as of late and came across a nifty little feature in JUnit4 called Rules while needing to verify a certain exception was being thrown. For example, let’s say we needed to verify that something threw an IAE…

public class MyTest {
  @Rule
  public ExpectedException exception = ExpectedException.none();
 
  @Test
  public void willThrowIAE() {
    exception.expect(IllegalArgumentException.class);
    exception.expectMessage("omg bad arguments");
    // do crap that will throw an IAE
  }
}

This is just the tip of the iceberg with what you can do with rules. There’s also a rule (TemporaryFolder) for creating temporary folders that are guaranteed to be deleted after the test is run. On top of that, it’s pretty easy to create your own rules if you need to modify test behavior to suit your needs.

In the end, it’s always fun to discover something new and useful in a tool you’ve been using for awhile.

Eclipse Helios in the News

Yesterday, Ian Skerrett posted some links about Helios in the press.

During my morning coffee ritual I read through most of them… I was especially taken with Dana Blankenhorn’s article

This was always a false image. Not that I have anything against a good parent’s basement, or a nice comfortable pair of jammies. And when open source was being born, at the bottom of the dot-bomb, there was high unemployment in the code-o-sphere.

But the coders and the coding were always professional. There have always been a lot of people in open source who knew how to make the coding train run on time.

So with Eclipse’ Helios dropping yesterday, right on schedule (even with everyone else watching the U.S.-Algeria game) it’s worth noting that this is the seventh straight year that the code has arrived on precisely the day it was supposed to.

Eclipse is the open source dog that does not bark. Its professionalism is the clue that unravels the whole case, and makes much else possible. Many things go wrong in our troubled world, but professionalism like this can get us through.

Ruff? Arf? Anyways, something to be proud of in my opinion.

Of course there was also some criticism

The big problem with any Eclipse release if finding out what it’s all about and what you have to do to start using it. As with most open source projects, the documentation is terrible and idiosyncratic. Given time on-line tutorials and third -party documentation, books, howtos,.. will start to catch up with the new release but for the beginner it’s initially an impenetrable wall.

It’s not just basic documentation that is a problem. Finding out what any given Eclipse package or project does can be next to impossible. If you don’t already know what it’s is all about then the only way to find out is to download and experiment. This isn’t helped by the fact that currently the web-based help system seems to have a bug that stops it working. The Eclipse project is often flaky on features used by beginners – it’s probably because the Eclipse developers test the cool interesting stuff and mostly ignore anything trivial.

In addition the whole approach of the Eclipse documentation is to tell you about the development process of the project, how it was started, how many milestones have been kicked over and so on. All very personally satisfying but useless for the beginner who might actually be tempted to use this free IDE.

Adding easy to follow feature descriptions and introductory explanations to the front pages of the web site would probably increase the take up of Eclipse by a factor of 10 or more. Just because it’s open sources doesn’t mean it has to lack commercial acumen.

Ok, that’s fair enough, not every project has nice documentation like Xtext or some other Eclipse projects. However, I think we’re better than most. I’m not sure how we can improve besides having some consistent guidelines projects can follow so regardless of which project you go to, the documentation is presented in a similar fashion. Any ideas?