Wednesday, March 31, 2010

More EclipseCon 2010 Thoughts

Hi all...

I try to write up a summary each year I go to EclipseCon documenting what talks I went to, what I thought was interesting, etc.

I've done that here this year on a JBoss Wiki page: https://community.jboss.org/docs/DOC-15091

Ignore it if you don't find it useful, but I thought it was a great conference this year. :)

--Fitz

EclipseCon 2010 - Some thoughts

Hi all...

Yes, it's been a long while (again) since I had an opportunity to write here. But after such a great EclipseCon 2010 experience, I feel it would be a disservice to not talk about it. :)

After joining Red Hat in the middle of 2009, I entered the maelstrom of tooling development in the exciting, chaotic world of Red Hat and JBoss. Leaving Sybase was tough, but it was time to do something different after nearly 13 years at New Era and Sybase. But it was a shock to the system to go from the slow and steady of Sybase to the full speed ahead of Red Hat.

That said, I've had little time to spend on DTP at Eclipse. I feel bad about this. But I'm trying to help as much as I can, just like Brian and Hemant from IBM and Linda from Actuate. None of us can spend as much time as we might like on this great project.

So I went to EclipseCon 2010 with a bit of trepidation. How would DTP be received? We really don't have much to show in our Helios release beyond a few fixes here and there.

We had one talk for DTP this year - DTP in the Real World. I spoke about our improved RCP support in DTP and provided a plea for more community involvement. And Ruth Soliani, from the Eldorado Research Institute in Brazil, who spoke about how they used DTP in their MotoDev Development Studio product (with Motorola) to connect to a SQLite database on an Android device. Pretty darn cool stuff there and they were very kind to say nice things about the DTP team. :)

On the first night of the conference, we had a DTP Birds of a Feather (BoF) that was very encouraging. We met Ray and Chris from Ingres who will be helping us out from that side of the DBMS world where they can. We met Shenxue Zhou from Oracle, who we've been trying to help out as we can as well.

So the show of community support was awesome. At EclipseCon 2009, we had a very low attendance to DTP talks and nobody attended the BoF. This year we had 30-40 people attend the DTP talk and 3 people (beyond the DTP PMC) show up, plus one guy who was hoping DTP meant "Desktop Publishing" (Sorry about that!). We had great conversations with Ruth's team, the guys from Ingres, and Shengxoe from Oracle.

Now I'm actually hopeful DTP will survive. And that's a good thing!

A big thanks go to Oisin Hurley and Don Smith who put on a terrific conference this year. Every talk I went to had a good number of people attending and a few were standing room only (like Mik Kiersten's talk about Mylyn!). Not to mention the awesome keynotes and the giant moon robots that looked like something out of The Matrix. :)

Thanks to everyone who attended and especially the DTP community who's coming back to life!

--Fitz

Tuesday, October 20, 2009

Looking for DTP Hitchhikers...

Hi everyone...

Wow... It's been a while since I last wrote on this blog. I've been keeping busy at Red Hat since I hopped the fence back in June. :)

Unfortunately, with Sybase's reduction in DTP resources and a few other folks we've lost by attrition, we're suffering from a serious lack of help in the Connectivity and Enablement projects at the moment. Though Linda from Actuate helps out in Connectivity every now and then, it's pretty much just yours truly with occasional help from our friends at Codehoop. And my time these days is pretty minimal for DTP.

Talking with Brian Payton, our fearless leader these days in DTP, it came up that with the small core of folks involved it was like we were in a book "Hitchhiking Through Europe on Pennies a Day" - not getting too far, but when you do get picked up and make some progress on your journey it's often for a brief burst of speed and then you're out of the car on foot again.

So we're looking for a few hitchhikers to help us out.

I come to you, our friends in the DTP community and the broader Eclipse community, and ask for help. We're not asking for full time, devoted folks. We're asking that if you get some time and want to dig into DTP, we have lots of Bugzilla entries that could use some tender loving care.

If everyone who uses DTP would dig into one DTP bug every few months and provide a patch, I'm pretty sure our list of issues would decrease dramatically.

We already have a few mediums out there to communicate... We have the Eclipse DTP mailing lists and newsgroup (check out http://wiki.eclipse.org/DTP_New_Committer_Info to get the list of how to find those resources). And I just created a new IRC chat (#eclipse-dtp) on freenode that I'll be on any time I happen to be logged in. Maybe we can get the conversation going between other DTP community members and bring things back to life a bit!

Personally, I've been involved with DTP since 2006 and have really enjoyed working with everyone I've met. Who knows who you might meet? We can't offer fame or fortune for your contributions, but we can definitely offer our gratitude and most likely the gratitude of a grateful DTP community.

Who's interested in helping us out?

--Fitz

Thursday, August 27, 2009

Greetings from the land of Red Hats!

Hi all...

It's been a while since I last posted anything on this blog, but I want to assure you it's not dead. Well, not quite anyway. My new position at Red Hat has been and will continue to be a challenge - a good one! But that means I have less time to spend on DTP topics...

I know I still owe (oh ye few who read these words) the remainder of the YouTube/DTP plug-in I promised way back in March with my EclipseCon 2009 talk. But I hope to get back to that sooner than later.

In the meantime, I wanted to congratulate Brian Payton from IBM for becoming the new DTP lead. He's a great guy who's kept a handle on the SQL Editor for quite a while now and I'm sure he'll do great for the rest of DTP too! I'll continue to help out where I can and be involved, but to a much smaller extent.

As such, if you see him around please welcome Brian P to his new position if you get a chance. I'm sure he'd be happy to hear from our community!

We're in the process of finishing up 1.7.1 for the end of September with the Galileo SR1 release train and will then see what we can do for Helios.

If you, our great community, have some extra cycles to help out, we'd love to have you join the party. Give us a holler on the mailing lists or newsgroups and let us know what you're thinking. The more the merrier!

Thanks a ton for your continued support of DTP and hopefully I'll get back on track with some new posts here before long. :)

--Fitz

Tuesday, June 16, 2009

The end of an era and a new beginning...

To the Eclipse and DTP communities...

Some of you may have already known that I was leaving the leadership of DTP at the end of Galileo. If you didn't already know, Sybase is pulling away from project leadership for now. They have their reasons for doing so, and though valid I am sad to see us retreat from DTP after the last four years.

That said, it's been an honor to help lead the DTP project over the last year and I'm proud to have been involved with all the participants and the community for the last four years. I've learned a ton and met some truly amazing people. And most of all, I've had fun. Those are always my three criteria for success -- the people I work with, what I learn on the job, and whether the job itself has some elements of fun. It's not always fun, but it has to have a bit at least. :)

I'll miss being as involved as I have been, but still hope to retain my committer status as I shift jobs, leave Sybase, and head to Red Hat at the end of the month. After more than 13 years at New Era and Sybase, I'm leaving to pursue a different opportunity. Definitely time for a change and RH made me an offer I couldn't refuse.

So I'll still be around DTP, just not as much as I have been over the last few years. I'm sure that others will pick up the mantle of DTP leadership and continue to shepherd the project forward. We have a great community that continues to grow and use our code in innovative ways, so I'm hopeful about the future of the project. I will still try and continue to post here as time allows, but I can't guarantee anything.

Thank you to all of you who have helped over the years. I'll still be around and hope to keep in touch!

--Fitz (aka Brian Fitzpatrick)

Thursday, April 23, 2009

Interesting trend in DTP Mailing List

Hey all...

I saw Dave Carver's post about using MarkMail's indices of the Eclipse mailing lists and was inspired to take a look at the DTP mailing list to see if there were any trends. We seem to follow the same trend as WTP...

We seem to peak around the time of each year's release train, which makes sense, and then drop off a bit after that.

This helps to understand a bit of the adoption curve as was noted in the EclipseCon 2009 keynote "The Social Mind: Designing Like Groups Matter" (you can see the abstract here).

They showed a picture of Wikipedia contributions that looks somewhat similar to the graphs for WTP in Dave's post and this one for the DTP list. Initially there's a lot of contributions and conversation and it starts to drop off over time with only a few people doing the majority of the posting. In our case, the top 5 are all either Sybase or IBM folks, but it's heartening to see that at #6, we have Oracle represented and some of our friends at Actuate as well.

What does this tell us? Honestly not much more than we already knew, but it's good to have another metric. Thanks Dave for pointing out that Markmail is there!

If anyone's interested in the DTP-DEV stats, feel free to check them out here as well.

Back to the grindstone!
--Fitz

Wednesday, April 15, 2009

DTPtv - Part 1 - Using YouTube APIs in Eclipse

Hey there...

So yes, I'm back to talking about DTPtv... (You can see my introduction to the series here.)

YouTube, LLCImage via Wikipedia

Now that we know generally what we want to do, we'll start by focusing on making the YouTube APIs usable in Eclipse and perform a simple test. Easy enough, right?

So the first thing I had to do was grab the YouTube jars from Google. I found those here. I grabbed the latest version of gdata-samples.java. The YouTube/Google APIs also have some dependencies, so I had to go out and grab imap.jar, mailapi.jar, pop3,jar, and smtp.jar. I was able to re-use a plug-in wrapper for javax.activation.jar from Orbit, which I'll talk about in a sec.

With all of the jars downloaded, I just had to create an Eclipse plug-in wrapper so they were available to other plug-ins. To do this is cake... Right-click in the Package Explorer, select New->Project, and in the list of Wizards select "Plug-in from existing JAR archives". Select your external jars (it will copy them into the plug-in wrapper). I named mine "com.google.gdata.youtube" and unchecked the "Unzip the JAR archives into the project" so it kept the jars as jars, not source code. Click Finish and watch the magic happen.

When it's done, I had to do one last thing to add a dependency. The Google APIs still depend on the javax.activation.jar...

Do you remember I mentioned the Orbit project? Well, you can read more about it here, but the idea is that it provides a repository for a number of third-party projects/resources that are shared across Eclipse. These have already gone through the IP process and are approved for our use. (Note however that even if a library is approved by the Foundation for use by all projects, project teams must still fill out a Contribution Questionnaire and notify the Foundation of their intentions to use a library). And there are quite a few of them. If you look at the latest build (from back in August 2008), you'll see 83 different packages available.

In this case, I just want javax.activation, so I locate it in the list, download it, and drop it in my Eclipse environment. Once the workbench picks it up, I can add it as a dependency in the MANIFEST.MF file for my wrapper plug-in.

Cool. So that pretty much wraps up my jar wrapper plug-in. Not too tough there.

So now what? Now that we have this plug-in, we can write a quick little application to do something with it.

I've gone ahead and created a simple class that does a very basic YouTube search...
package org.eclipse.datatools.sample.utube.sandbox;

import java.io.IOException;
import java.net.URL;

import com.google.gdata.client.youtube.YouTubeQuery;
import com.google.gdata.client.youtube.YouTubeService;
import com.google.gdata.data.youtube.VideoFeed;
import com.google.gdata.util.ServiceException;

public class UTubeUtils {

public static String TR_FEED_URL = "http://gdata.youtube.com/feeds/api/standardfeeds/top_rated";//$NON-NLS-1$

/**
* Return a list of video entries back to the calling method
*/
public static VideoFeed getResults(String author, String title) throws IOException, ServiceException
{
YouTubeService myService = new YouTubeService(
"", //$NON-NLS-1$
""); //$NON-NLS-1$

String VIDEO_FEED = TR_FEED_URL;
YouTubeQuery query = new YouTubeQuery(new URL(VIDEO_FEED));

//set the author
if( (author != null) && author.length() > 0)
{
query.setAuthor(author);
}
//set the actual query string
if((title != null) && title.length() > 0)
{
query.setFullTextQuery(title);
}

//choose most viewed as the ordering
query.setOrderBy(YouTubeQuery.OrderBy.VIEW_COUNT);

//get the video feed
VideoFeed feed = myService.query(query,VideoFeed.class);
return feed;
}
}

So all that this really does is get a list of the top rated videos currently at YouTube. Pretty straightforward.

You'll notice a couple of things about the code. You have to have a developer key (your own ID as a developer or one for a particular company) and a client ID (seems you can have many of these). This basically lets the Google & YouTube APIs know that you're legitimately asking for data and aren't some rogue hacker trying to cause trouble. You can get these two items here. Once you have them, you can just create new constants for them and just use the constants.

So if you swap your developer key and client ID into the above code, it should do a quick search. But how should we test it?

I like creating new plug-in projects with example menu actions. To do this is pretty easy... Right-click in the Package Explorer, select New->Project, and in the list of Wizards select "Plug-in Project". Name it and set the plug-in ID and other info, and on the "Templates" page in the wizard, select "Plug-in with a popup menu." By default it keys off an IFile, so you can get to it from the Navigator or Project Navigator in the workbench.

It goes off and creates the basic code and you can then use your new utility class pretty easily by changing the run() method in the action class to look something like this:

    public void run(IAction action) {
try {
VideoFeed feed = UTubeUtils.getResults(null, null);
if (feed != null) {
if (feed.getEntries() != null && feed.getEntries().size() > 0) {
System.out.println("Found some videos...");
Iterator<VideoEntry> iter = feed.getEntries().listIterator();
while (iter.hasNext()) {
VideoEntry entry = iter.next();
System.out.println("Video Entry: " + entry.getTitle().getPlainText());
}
}
// clean up
feed = null;
}
} catch (ServiceException se) {
se.printStackTrace();
} catch (IOException ie) {
ie.printStackTrace();
}
}

When you run the workbench and right-click on your action in the Navigator, you should see something like this in your development workbench console view...

Success! We have a plug-in wrapper for our YouTube jars and their dependencies. And we've verified that we can use those APIs in an Eclipse environment.

Next we have to figure out how to hook up YouTube to DTP and show a video in the workbench. And after that we can fine tune our look and feel to make it easier for our users.

Maybe this was a bit longer to write up than I'd thought originally, but this part of the process only took me about half a day when I was creating this code the first time.

Questions? Comments? Drop me a note here and I'll be happy to get back to you.

Next time I'll write about hooking up YouTube and DTP and how I used the built-in Eclipse web browser UI component to show videos.

--Fitz


Reblog this post [with Zemanta]