Archive for March, 2008

The Interesting Part

Monday, March 31st, 2008

The Eclipse Examples project has been provisioned! I’ll spend some time later this week setting up the landing page and get to work moving some of my examples into the new project. Frankly, it’s exciting as heck for me.

Over the last few days, I’ve been dreaming a bit about some of the code that I’d like to move into the project. I have a few applications based on Eclipse Rich Client Platform (RCP) that I’ve built over the last couple of years for personal use (or at least not for official Eclipse Foundation work). As I was going through the code for one of the applications, it occurred to me that the most interesting bits of the application really had nothing to do with any specific Eclipse technology…

But that’s the point, isn’t it?

I remember a project I worked on 15 years ago or so. I spent quite a lot of time building infrastructure to make the “interesting bits” of the application work. I probably spent a few hours making a relatively generic selection service. I recall spending weeks developing generic graphical components that supported grouping, drag and drop, etc. I also spent weeks building an object/relational persistence mapping framework. One of my colleagues spent months building one of those “notebook” widgets (tabbed panel) with a stylized spiral binding that were all the rage into those heady OS/2 days.

Ultimately, the customer didn’t care at all about the ability of the application to make selections, drag and drop little boxes, or click on tabs to expose pages of information; they cared that their business analysts could be productive with the application. All those generic plumbing pieces were merely the cost of doing business. I needed to have those things as a foundation for the real application behaviour. I needed to have those things, but they weren’t of any specific value to the customer. What was valuable to the customer was the application we built on top of those generic frameworks. This is where we found the really interesting code: the accounting algorithms, the business rules, the business logic, etc.

I love the opportunity that project gave me to learn how to do all that funky stuff, and it was on this project that I learned about project management (via counter-example, but that’s a story for later). If I had do this project over, it’d be a really good fit for Eclipse RCP, the Eclipse Graphical Editing Framework (GEF), EclipseLink, and the Eclipse Modeling Framework (EMF). We’d be able to complete it in probably a quarter of the time with far more functionality. To boot, we’d be able to deploy it over the web using RAP (how cool is that?)

A lot of organizations have already picked up on this. You can read some of their stories on the case studies page.

I’ve been speaking with students, professors, and researchers at several universities. They see Eclipse as a bit of a competitive advantage: you see, a lot of the other universities haven’t caught onto the fact that—by using Eclipse technology as a foundation for your research work—you can maximize the amount of time you spend working on solutions to your actual problem and minimize the time you spend working on the infrastructure necessary to make everything work. Eclipse supplies the “make everything work” part, you solve the problem that needs to be solved. Sounds like a productive relationship.

Tracking Equinox Services in Eclipse RCP

Monday, March 31st, 2008

This video podcast shows a simplified example of Equinox services in action. It shows declarative services being dynamically discovered using a service tracker that updates the user interface to show the services that are available. The example also shows Equinox declarative services, and the JFace databinding APIs in use.

Eric Rizzo, Top Newcomer Evangelist

Saturday, March 29th, 2008

Eric Rizzo received the Top Newcomer Evangelist award at EclipseCon 2008. In this podcast, Eric discusses his tireless work with the Eclipse newcomer newsgroup, getting help with Eclipse, and more.

The link should also soon be available on Eclipse Live.

GSoC Timeline

Thursday, March 27th, 2008

The Google Summer of Code timeline is posted in the GSoC FAQ. According to the timeline, students have until March 31 to submit their project proposals. Don’t delay, submit today!

Video Podcast: Creating an Equinox Service using Declarative Services

Thursday, March 27th, 2008

I just posted a video podcast titled “Creating an Equinox Service using Declarative Services“. This video podcast briefly describes Equinox services and goes through the steps required to create and run a service using the Equinox Declarative Services (in incubation at the time of recording).

ds01.png

For the recording, I cranked my screen resolution down to 640×480 and stripped down my Eclipse (Eclipse For RCP/Plug-in Developers Ganymede M5) to contain only the bare minimum user interface. I resized the output to the screen resolution of an iPod Touch (which I assume is the same as an iPhone). All-in-all, it worked out well. The results look quite good on my iPod classic: the text on the screen is small, but readable. I only just posted it on Eclipse Live, so I haven’t had a chance yet to see if iTunes can make any sense of the MP4 extension on the file.

I do sort of waffle a little in the middle when I discuss that, with declarative services, you can actually use a class instead of an interface (true), but I’m quite satisfied with it overall.

If you want to learn more about Equinox/OSGi Services and Declarative Services, Neil Barlett’s series on the topic is an excellent source of information.

GSoC Students: Read this carefully

Thursday, March 27th, 2008

We’ve received many wonderful applications; I’m really looking forward to this term’s GSoC.

Students, you need to submit your proposals through the Google Summer of Code system. You can find it here: http://code.google.com/soc/2008/. You will have to register with Google if you want them to pay you for your efforts. We are always happy to accept applications through other mechanisms, but if you don’t register with Google and submit your application through the Google Summer of Code site, you’re not getting paid.

Don’t send your proposals to me via e-mail. Send them to Google. Don’t send them to Philippe, Anne, or EMO, webmaster, or legal@eclipse.org. You can post them on the SOC mailing list or newsgroup if you’d like, but you must also post them on the Google Summer of Code system. Feel free to drop me a note letting me know that you’ve posted your proposal, but that can’t be the only communication.

Remember that we don’t need your entire résumé as part of the application. A short bio accompanying your well-thought out project description will do. Show us that you’ve done your homework (the fact that you’re reading Eclipse blogs is a good indication of doing at least some of the homework). Make us believe that you’re working on something that has value for us, and that you’re going to get the work done.

In case you’ve misplaced the link, you can post your application for participation in GSoC with Eclipse here: http://code.google.com/soc/2008/.

Apply Now! Google Summer of Code 2008

Wednesday, March 26th, 2008

Google has opened their Summer of Code 2008 application system up for students, so now is the time. The student application deadline is March 31 @ 5pm PDT.

We have already received a bunch of applications and there’s some good stuff. There are also a lot of incomplete proposals.

Students, it’s not enough to send us your resume along with a one-line description of what you intend to work on. In fact, I don’t want to see your resume. What I want to see is that you’ve done some homework: state your project idea, give us some description of the scope (i.e. what do you expect to complete in the time available), describe any work that you’ve done toward the goals already, ideas you have for implementation, technologies (especially Eclipse technologies) that you’d leverage as part of the implementation, etc. The one-line titles and one-paragraph ideas on the Ideas page should serve as a starting point, not the complete answer.

Mentorial candidates, if you haven’t been accepted as a mentor yet, please send me a note (wayne_at_eclipse_dot_org) and tell me who you are and relevant experience that qualifies you to work as a mentor on behalf of the Eclipse Foundation (”I’m an Eclipse committer, you idiot” is a valid and fully complete response). You don’t need to be a committer, but we (the existing mentors) have to get that warm-squishy feeling that you have your Eclipse-chops.

Unfortunately, the application process that Google uses is open only to mentors. If you’d like to see the applications, considering adding yourself as a mentor. Pending permission from Google and the student submitters, we will be posting project proposals that pass our initial vetting to the newsgroup.

Equinox Services and User Interface

Tuesday, March 25th, 2008

I’ve been trying to decide how to work with Equinox services in the user interface.

I’ve started modifying the Organizer application that will soon be part of the Eclipse Examples Project (once it’s provisioned) to use Equinox services. I’ve got a view that updates its appearance based on available services. The implementation is straightforward enough. The view has a ServiceTracker that watches as services of a particular type are added (or removed). As these services come online, the tracker notifies me of the change and I add a button corresponding to the new service to the view. The button is configured (text and image) with information from the service; when clicked, the button invokes behaviour on the service. When the tracker notifies me of that the service has been removed, I dispose() the button (thereby removing it).

It’s pretty cool to see the user interface change in response to commands typed in the Equinox console. Stop the service and the button disappears, start the service and the button reappears. Lather, rinse, repeat. Hours of fun for the whole family.

One advantage of this technique is that I can control aspects of my user interface by selectively enabling services. I can imagine a scenario where, using declarative services, a collection of services depend on the existence of a “role” service. For example, administrative behaviour might be defined in a collection of services that depend on the existence of an “Administrator” service that is only created if the user’s permissions include administrative operations. With declarative services, it’s easy to specify a cardinality on your dependencies; a service can specify, for example, that exactly one service of a particular type must be started before it will start. This isn’t exactly what I have in mind with the example I’m working on, but might be an interesting proof of concept.

The example code is still a little rough. I’m smoothing it out in anticipation of the Examples project being provisioned. In the meantime, I may try to develop a simpler example and post some of the code.

Best part of EclipseCon

Friday, March 21st, 2008

Tonight I was asked what, for me, was the highlight of EclipseCon 2008.

The keynotes were good… great even. Finally meeting Eric Rizzo, one of the most prolific contributors on eclipse.newcomer, face-to-face was great. I attended many sessions and enjoyed them all (though I have to admit a certain amount of guilt for “live-blogging” during the sessions; i.e. typing when I should have been listening). I learned a lot. Stalking Frank Gerhardt was fun.

I enjoyed meeting all the people in the Eclipse community and learning about their experience with Eclipse. I managed to get a few people interested in collaborating on some articles for Eclipse Corner, and found that vastly more than a few people are interested in helping out with the Eclipse Examples project. I even managed to squeeze in lunch with on old friend, Peter, with whom I played Rugby in high school.

If I had to pick one thing that was the highlight of the show, it’d be watching Pascal Rapicault talk about p2. p2 is an interesting topic and I learned a lot. Pascal is obviously passionate about the work that’s been done and the care that the p2 developers are taking to make sure that the introduction of p2 with Ganymede is as smooth as possible for all involved. However, what I learned pales in comparison to the sheer enjoyment of watching Pascal present. I mean this in a purely complimentary way: he’s a compelling and charismatic speaker. Don’t worry Pascal, it’s not a man-crush or anything…

Lots of Web Developers

Thursday, March 20th, 2008

Participation with the Usage Data Collector (UDC) continues to increase. Over the past 14 days, 2,757,764 usage data events were been generated by 547 users (an average of 5,042 events per user). It seems that 370 of you used the JDT Package Explorer and 88 used the WST Servers view. I haven’t run any analysis to prove it, but I imagine that those 88 users of the Servers view are also included in the Package Explorer number. My little brain tells me that a lot of folks are using Eclipse to write enterprise applications using Web Tools.

More results (raw data) can be found on the UDC results page.

You are currently browsing the Eclipse hints, tips, and random musings weblog archives for March, 2008.

  • Pages

  • Archives

  • Categories