Twitter github

Category “work”

b3 aggregator powers Helios

Yesterday, Henrik Lindberg had a great in depth blog post about the b3 aggregator. On top of what Henrik already mentioned about the b3 aggregator, most people don’t realize that it’s really one of the unsung heroes of the Eclipse simultaneous release (David Williams being one of the other heroes). As part of the Eclipse Helios release, the b3 aggregator combines repositories from various projects into a new aggregated p2 repository that everyone is familiar with when they open their Eclipse and point to: http://download.eclipse.org/releases/helios

It’s amazing enough that we are able to ship 40 or so disparate projects on time this year as part of the Eclipse Helios release but having the b3 aggregator helps make things easier. I highly recommend looking at the b3 aggregator if you’re interested in building targets or mirroring a complex set of repositories. If you want to dive a bit deeper on how the aggregator is used as part of the Eclipse Helios release, I’d recommend taking a look at the Helios build project and in particular, the helios.build file…

And to think… in a little over a month we will ship another successful simultaneous release at Eclipse! What other open source community out there can say the same? It’s really something to be proud of in my humble opinion.

Speaking at Poznan JUG

I’m excited to be heading back to the motherland next week.

My main focus will be GeeCon, however, I got invited to present at the local Poznan JUG with some other folks. I was initially going to talk about API evolution and management but I got roped in to talk about e4. While I’m no Boris Bokowski when it comes to e4, I’m sure I can educate and entertain people for around 30 minutes on where the the Eclipse platform is headed. So if you’re in the area and want to learn a bit more about e4, please consider attending!

I’m also thrilled to meet Dariusz Luksza in person who is currently being mentored by Matthias Sohn (SAP) and the EGit team for Google Summer of Code 2010 at Eclipse. He’s doing some great work around adding tagging support to EGit and will be focusing on the synchronize view soon along with the rest of the EGit team.

Anyways, see you in Poland next week!

SWTBot and Eclipse Forms

When it comes to user interface testing in Eclipse, I’m a big fan of SWTBot. I had some long plane rides recently and a need to add some functionality to SWTBot so I decided to see if I could tackle an outstanding feature request in SWTBot to add Eclipse Forms support. On top of that, I also had a selfish reason to learn more about the internals of SWTBot. After forking Ketan’s copy of SWTBot on GitHub, I pushed my changes which adds an SWTFormsBot class as the primary handle to drive user interface tests.

So your test code would look something like this…

public class SWTBotImageHyperlinkTest extends AbstractSWTBotFormsTestCase {
 
	@Test
	public void findImageHyperlink() throws Exception {
                FormView view = new FormView(shell);
                SWTFormsBot = new SWTFormsBot();
		SWTBotImageHyperlink link = 
                     bot.imageHyperlink("Image link with no image");
		assertNotNull(link);
		assertEquals("Image link with no image", link.getText());
	}
 
}

We’re looking to eventually integrate this into SWTBot proper, just pay attention to this bug if you’re interested.

Enjoy.

The Open Source Developer’s Dilemma

Over a couple frosty beverages yesterday, I had a lively discussion with a colleague about open source contributions from a developer’s perspective. In my opinion, open source developer’s have to walk a fine line when it comes to working with new contributors and not killing all of your time while doing it…

What do I mean here? Well, when you get a contribution it’s pretty rare that the contribution is just perfect and ready to be submitted to the main line. The reality is that you get contributions that generally need some form of tweaking before they are ready for the world. It’s the tweaking where things get interested. There’s two attitudes you can generally take.

The first position is you can simply be happy that you got a contribution in the first place and just make the necessary tweaks your self and push it to the mainline. The upside to this is that the contribution actually gets contributed quickly. The downside is that this consumes a bit of your time to polish the contribution and that you may also miss out on the opportunity on cultivating a contributor. The second position is that you can do a thorough review of the patch and force a contributor to polish the contribution to meet your standards. The upside is that your this may result in higher quality patches from contributors in the future. Heck, if contributors become really good, they may even make the jump to a full blown committer on your project. The downside is that patches may go stale because you may discourage contributors if you ask too much from them.

I’ve seen both approaches in a variety of open source communities. I’m generally happy just to get a contribution from anyone. I don’t think there’s a silver bullet approach in the way you treat contributors, you probably have to do things on a case-by-case basis. In the end, I felt like I needed to do a brain dump of the discussion I had yesterday. On top of that, I find the question of how to attract contributors without killing all of your time while keeping quality high… just fascinating.

What do you think about this problem… from either a developer’s or a contributors perspective?

JAX 2010 – Eclipse Platform Day

I attended and had the honor to moderate Eclipse Platform Day at JAX 2010. It was another nice day in Mainz, especially along the jogging trail…

Boris Bokowski kicked off the day by talking about adopting e4. Boris spoke to a packed room! There was a lot of interest in understanding how Eclipse is evolving and what it means to reach 4.0 and how it may affect downstream folks. There’s still some confusion, but people are starting to understand why e4 was necessary and having concrete examples definitely helps.

Later in the day, Steffen Pingel discussed the new p2 discovery user interface that is shipping with the Eclipse Helios release. If you’re looking for a simplified and customizable user interface for your Eclipse-based application, I highly recommend looking at the discovery code.

Christian Campo spoke about the SWT Qt port he’s been working on for awhile. He managed to bring up a version of the Eclipse SDK that ran on top of Qt… which opened the door to easy theming and some other features that Qt offers out of the box.

In the end, I hope people enjoyed the day and learned something new.

JAX 2010 – Eclipse Modeling Day

Today I had the opportunity to attend part of Eclipse Modeling Day organized by Eike Stepper and Sven Efftinge at JAX 2010. On top of that, it was a nice day in Mainz!

Ed Merks started off the day introducing the audience to the Eclipse Modeling Framework (EMF) which is the foundation of all things modeling at Eclipse…

After Ed’s talk, I heard a modeling case study by Stéphane Barbey from Paranor AG. They managed to create a sophisticated workbench from banking software using a slew of Eclipse modeling technologies. Personally, I think the modeling community at Eclipse needs to start formalizing case studies like this as it really shows what people do with the technology in the real world. Maybe the Eclipse Foundation can help create some case studies similar to what we did with RCP for the Eclipse Modeling community?

I also attended Tom Schindl’s presentation about EMF Databinding…

I always forget about the great example that Tom put together that demonstrates the power of EMF, CDO and Databinding. After Tom’s presentation I succumbed to jetlag and went for a nap, but I’m sure Ed Merks will have a nice write up of the event. I saw him taking pictures throughout the day. On a side note, the Modeling Day was so well attended at the conference that we had to move rooms. For some reason I don’t completely understand yet, Europeans love modeling technologies. In the end, it’s exciting to see the Eclipse modeling community growing each year.

Eclipse and Profile id _SELF_ is not registered

So I’m setting up a fresh Eclipse install for 3.6 M7 test pass week this morning and found that I was unable to install anything via p2. Any p2-related action that I performed ended up with a strange “Profile id _SELF_ is not registered” error in the log followed by many profanities. So the next obvious step was to debug the problem and about half way through debugging… I realized I hit a similar problem before on Mac and it was related to a bug in The Unarchiver application. I was right… again… for some reason, The Unarchiver will append “0000664” to p2 profile data while decompressing.

This is obviously a problem and will cause failures. The workaround is to strip the “0000664” suffix from the p2 profile data or simply use another unzipping tool. So for any folks who use Eclipse and hit this on Mac, I hope you find this post and save some pain.

Naming Helios +1 – Isaac vs. Indigo

The Eclipse Planning Council is holding a run off vote to name the Eclipse Helios +1 release. The last vote held helped narrow things down between two names…

Isaac

Indigo

Rock the vote, we’re almost there.

Eclipse Helios Austin DemoCamp 2010

Hey guys, we will be having an Eclipse DemoCamp in Austin on June 2nd, 2010! The gracious guys at Texas Coworking are letting us use their space which is conveniently located downtown.

I’m still in the process of establishing a program, choosing the beer and gathering speakers so please be patient. In the mean time, please sign up on the wiki if you want to attend or speak 🙂

Eclipse RCP Book 2.0

I thought I’d never see the day but as Jeff McAffer mentioned earlier today, the latest edition of the RCP book is done and headed to the presses. Sorry for the delay, it should be on the shelves in the next couple weeks.

The book covers the Eclipse Galileo release (3.5.2 in particular). A lot has changed since the Eclipse 3.1 release so we did our best to cover new topics such as p2 and Databinding. An important focus of the book was to update the code and make sure we did a good job covering p2 as that was one of the major changes to RCP over the years. In the end, we hope everyone appreciates the update, it’s hard to please everyone but I think the community will benefit on the whole from some fresh content. One of the challenges in open source projects is quality documentation and books definitely help.

On a side note, it took us awhile to choose a cover image.

What do you think the cover symbolizes :)?