Archive for May, 2006

Not quite at JavaOne yet…

Tuesday, May 16th, 2006

I’m planning to be at JavaOne this week, just not all week. I spent a lot of time last week visiting folks in Europe and any plans of spending the following week in San Francisco would likely result in divorce papers being served. It’s just better this way for everybody (except the lawyers, I suppose).

I’m flying out to JavaOne on Thursday morning. I’m going to spend some time that afternoon working the Eclipse booth (#1138) with Ian. I’m planning to spend my time demonstrating Eclipse RCP, but expect that some folks will want to talk about other things.

On Thursday evening, I’m planning to attend the Jazz event at the W Hotel, 181 3rd Street (Great Room 1 & 2) hosted by Erich Gamma and John Wiegand. Unfortunately, I missed the event at EclipseCon. There was a lot of buzz and excitement around the event, so I consider this one of the “can’t miss” events of the show. I’ve been told that everyone is welcome and a JavaOne conference registration is not required.

My talk is on Friday at lunch. I believe that it is the last session. I remember that last time I delivered the last talk on the last day of a conference… the six of us had a grand time. I’ve been told that this isn’t typically the case at JavaOne. We’ll see.

Swing and a miss! then a hit!

Friday, May 12th, 2006

I was interviewed twice yesterday while in Paris. One was with Olivier Rafal, a well-known French IT Journalist, and the other was a video interview by Didier Gerard who posts his interviews on TV4IT. The second one worries me a little primarily because it’s yet another opportunity to hear my own voice. Despite rumours to the contrary, I hate listening to my own voice. But I digress.

During both interviews I was asked a question about Eclipse competitors. Strangely, it caught me off guard the first time. I was asked something to the effect of “do you consider NetBeans and Visual Studio to be competitors for Eclipse?” Ultimately I believe that I left the interviewer with a rambling answer that boils down to “yes”.

I had a better answer the second time through. The answer was still “yes”, but I managed a much broader (and I believe more correct) answer. Yes, Eclipse the IDE competes with NetBeans and Visual Studio. Yes, Eclipse RCP competes with NetBeans RCP and other application frameworks. Yes, Eclipse BIRT competes with other reporting tools and frameworks. Yes, EMF competes with other modeling tools. Yes, Visual Editor competes with other visual composition tools and frameworks. Yes CDT, Web Tools, and Test and Performance Tools Platform compete with other frameworks and tools in their respective domains. And so on. For that matter, Eclipse competes with Apache, SourceForge, and others for open source projects. Ian and I compete for Mike’s attention.

Yes. We compete. And we’re very competitive.

I need to swing by the bank when I get home

Friday, May 12th, 2006

I learned an important lesson yesterday.

Last night, I took a walk down Rue St. Denis in Paris and had a reasonably nice dinner at one of the many sandwich stands that litter the street. As I munched on my food, it occurred to me that I only had about 35 Euros in my wallet and that I was likely going to need more to pay for a taxi to the airport. “No problem”, I thought as I recalled passing an ATM earlier in the evening. I made my way back.

I have a long pin on my bank card. Apparently too long. For, while the machine happily accepted my card (and advertised acceptance of the PLUS network), it wouldn’t accept more than five digits from my pin. Oops.

I asked the nice gentleman in the lobby of my hotel if he knew whether or not the taxi might accept a credit card; he didn’t know. It turns out that it didn’t. Crap. I managed–eventually–to get some Euros from the currency exchange in the airport while the cabbie waited.

I’m going to change my password on Monday to something with five digits. The reduced security bothers me a little, but being unable to get cash when I need it bothers me more.

Now… let this be a lesson for all you kids out there…

If you’re planning to travel to far off places, make sure your bank card’s gonna work. And, always bring more than one credit card. And, bring an extra pair of underwear. You never know…

Swing by Club Java Paris

Thursday, May 11th, 2006

I spoke this morning at Club Java in Paris. I’m on my way home from Eclipse Forum Europe and, of course, couldn’t pass up such a great opportunity to speak to a developer community (I’ve been speaking at a lot of Java User Group meetings lately). Vlad, who organized my attendence here, gave me the big tour of Paris last night. We hit all the well-known spots, if only briefly. It’s been many years (24) since I’ve been to Paris, so it was really nice to get out and see everything. Next time I’m here, I’m going to plan on spending a little more time so that I can get out and properly see things.

Naturally, as has been the trend over the past few months, I spoke to the Club Java about Eclipse Rich Client Platform. I tend to focus more and more on the RCP component model provided by the Equinox project; frankly, I believe that this is one of the stronger reasons for adopting RCP. The ability to assemble components and strictly manage visibility between components is pretty powerful. The ability to manage multiple versions of the components is also a powerful and important ability when you use RCP to integrate components provided by multiple teams (not all teams will necessarily be using the same versions of the same libraries at all times). Gone are the days of carefully positioning JAR files on your classpath. This is a Good Thing(tm).

The declarative nature of component configuration is also handy. First, it makes configuration of components much easier. While there are great tools for doing this in the PDE, in a pinch you can easy drop into the files with a text editor and tweak them. Best of all, the declarative information generally provides enough information to the runtime environment about the components so that they don’t need to be loaded until actual code is required from them.

Of course the ability to have real components in a system makes it possible to extend and update your application. Without components, this wouldn’t be possible. Then there’s the development tools. PDE provides great help in building components, except that it calls them plug-ins. That is, “component” == “plug-in”. In OSGi (the specification upon which Equinox is built) parlance, “component” == “bundle”. So we’ve been building real components all these years. How cool is that?

There are a great many reasons to love Eclipse RCP, and Equinox is certainly a big one. And you can enjoy it on the server too. How fun.

Up Swing in Summer of Code Proposals

Wednesday, May 10th, 2006

We had an incredible jump in the number of student proposals for Eclipse projects in Google’s Summer of Code. On Saturday, we had 12 proposals. Today we have 77!

Many of the proposals are interesting. It seems that there is a disportionate number of people who are interested in providing printing support on Linux (only one of which has what appears to be an actual plan to make it happen). There are a couple of proposals for work done on the Mylar and CDT projects. There’s a couple of ego-strokers as well, including one proposing to add multiple fast view bars in an attempt to impress Erich Gamma (I certainly respect shameless pandering).

Sadly, there are only a couple of really creative proposals to build things that fall way off the beaten (Beaton?) path. My personal favourite is one for an Associative Memory Music Player, but there’s a little bias in that.

Unfortunately, a lot of students have just presented themselves with only a vague description of a project (and, in some cases, no project mentioned at all); you just can’t get through our rigorous vetting process by telling us that you’re “really, really smart. Really”.

One of things that impresses me is that a lot of the students seem to be aware that there are many projects going on in Eclipse; that is, they seem to understand that Eclipse is more than the IDE. There are proposals concerning Mylar, CDT, and ECF to name a few.

JAX Award and Eclipse

Tuesday, May 9th, 2006

I just noticed after a cursory review that six of the ten nominations for the JAX Innovation Award 2006 have something to do with Eclipse. Try as I might, I can’t figure out a reasonable way to put “Swing” in the title of this… :-)

My new RCP example has nothing to do with Swing

Tuesday, May 9th, 2006

I’ve been working on a new RCP application over these past few weeks. The effort has pushed me to look at a few areas inside Eclipse that I haven’t previously explored.

I rely heavily on calendar and task management software to manage my many different roles and responsibilities. Unfortunately, all of the calendar and task management software that I’ve experimented with just doesn’t quite measure up to my requirements. So, I’ve started to build my own.

It’s started as a handful of plug-ins that just run in my Eclipse development environment. So far, I have a task list view only that, oddly enough, lists tasks that I need to complete along with useful information such as a due date, reminder date, priority, and a handy field indicating whether or not the task is complete. The view itself is rather uninteresting (but shown below because Gunnar’s going to ask). For kicks, I added the ability to add and remove columns through the pop up menu which is pretty cool (and pretty easy, actually). The columns themselves all show simple text values; I’ll be changing this in the coming weeks (I’m also going to add the ability to edit the column values in place).


The most interesting thing about the task list is actually two things: I’ve added two very useful extension points to it. The first extension point lets me, through a separate plug-in, specify a backend for storing my tasks. Right now, I have two different backend plug-ins. One stores tasks in a project in the workspace; the other stores tasks in a Derby database instance in the user’s working directory.

The second extension lets me, again through a separate plug-in, specify a “drop handler” for managing different kinds of drops onto the task view. I currently provide support for dropping tasks and emails from Outlook, or chunks of text dragged from where-ever. I’m in the process of adding drop handlers for Mozilla Thunderbird and Ward and I looked at providing one for OSX mail, but didn’t get very far.

It’s the extensibility of Eclipse that keeps me coming back.

The beauty of the backend plug-ins is that I can easily add (or remove) different ways of storing my tasks. The workspace backend requires that the resources plug-ins be available in order to work; I prefer not to include these in my RCP applications, so I just don’t include the workspace backend when I package my task list as an RCP application. However, when I’m using the task list in my development environment, I love the ability to save these tasks in the workspace since I can then also commit them to CVS and thereby share them with other people (of course, I could still do this in an RCP application if I really want to). If I ever choose to integrate with a third-party task manager, I’ll just have to build a backend to support it.

The drop handler plug-ins all get a chance to respond to a drop event on the tasks pane. A drop handler needs to make sense of the drop event and build (if possible) a collection of Task objects from the contents of the event. It took me a while to sort out how to get this information from Outlook (unfortunately, it’s not complete as I haven’t quite sorted out how to get the actual text of the dragged message/task). I’m planning to add support for dragging in iCal formatted text and files by way of additional plug-ins. This will come in time.

It’s a start. There’s still a lot of work to be done.

Swing anyone?

Friday, May 5th, 2006

Curiously, I seem to get about twice as many hits on my blog whenever I include the word “Swing” in the title. I wonder why that is?

Visual Editor, Swing, and GridBagLayout

Thursday, May 4th, 2006

I’ve been using the Visual Editor to build some user interfaces for an Eclipse application that I’m building. As a distraction, I thought it might be fun to spend a few minutes cobbling together a Swing JFrame (okay, maybe “fun” isn’t the right word).

Below is what it looks like in the editor:

At the point I took the screen shot, I was about to drop a new JLabel between the two already placed ones. The “03″ by the cursor is feedback indicating that I’m about to drop the widget at position x=0, y=3. The form itself is pretty simple: just a bunch of JLabels and JTextFields. The JTextArea is in a JScrollPane and I threw in the slider for kicks. The two push buttons at the bottom are in a nested JPanel with a FlowLayout layout.

I’ve always hated using the GridBagLayout; it’s just too weird and complex for my little brain. But Visual Editor makes it a lot easier (the grid lines make it a lot easier). I managed to put this example together in about five minutes. My little brain can handle that…

Fame, notoriety, big bucks and no whammies

Thursday, May 4th, 2006

As Chris pointed out a few days ago, the Eclipse Foundation is participating in Google’s Summer of Code. Philippe Ombredanne is helping me with the administration of the programme and has, quite frankly, been handling the bulk of the heavy lifting (thanks Philippe). We’ve also assembled an impressive list of mentors and have picked up a few project proposals.

The programme funds students (on the order of USD$4500) to work on summer projects. That’s pretty good scratch for a couple month’s worth of work (at least it was when I was a student). Google takes care of the money, so don’t bother asking me about it (beyond taking part in accepting/rejecting proposals).

Of course, we’re looking for projects with an Eclipse angle to them; Philippe has made a tonne of suggestions on our project page. We’ve had a few students submit project proposals already. Unfortunately, most of them have been little more than resumes. In fact, almost without exception, all of the proposals have contained little or no detail about the actual project.

If you want to participate, I strongly recommend that you spend the proper amount of time and put a lot of effort into the proposal. Get help. Have your friends review your proposal. You need to provide us with enough information for us to:

  1. Understand what you’re proposing to actually build
  2. Have confidence that you can actually make significant progress over the summer

We’re not hiring a summer student to work on our stuff. We’re offering to mentor you through the process of building something you’re interested in. Just sending us your resume doesn’t cut it. Your skills are a necessary part of the project proposal, but it’s not enough to let us know that you’re smart. Tell us what you want to do with those smarts.

The one-line project suggestions on our page aren’t enough either. Use ‘em as a starting point, but we need to have more information.

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

  • Pages

  • Archives

  • Categories