In Are you in/near Munich or London? (Part 1)
, I announced (to the world at large) that I was going to be in Munich and London this week. I invited anyone near these places to drop me a line if they wanted to meet up. So, after exchanging a few messages (first in my blog and then later via e-mail), a meeting was set up at Munich airport—Georg and Peter were waiting for me when I had passed through customs (where I paused for a second to consider whether having 30 NetBeans IDE 5.0 CDs in my luggage was a factoid that needed to be declared or not). Anyway, since neither Georg nor Peter knew each other and since they only knew me from my blog, there were a few logistical problems to be overcome—but my NetBeans "Stand Out from the Crowd" t-shirt did the trick and we ended up spending several hours chatting in a cafe at the airport.
Now, the cool thing about Georg and Peter is that... they've been using NetBeans since it was called Forte. That's a really long time, pre-3.5, in other words. So these two are people who know what they're talking about when it comes to NetBeans. No misunderstandings what NetBeans is about, no confusions, no accusations about "missing features" that actually turn out to exist after all. Georg works purely in the web development area, while Peter is purely a Swing developer. How cool was that? We could talk about pretty much the whole length and breadth of the product. If you want to know how familiar these two are with NetBeans, get a load of this: Georg reads NetBeans CVS commit messages on a regular basis, to see what's really going on with NetBeans. (So, here's yet another reason for me to write useful commit messages...)
So, I took notes throughout our conversation. Here's a list of their needs and wants:
- Reporting tool. How often has that phrase been heard lately? A lot. And I told them that. I told them that this is very high on the radar (which is obviously 100% different to promising anything, which as a humble technical writer I'm not in a position to do anyway). Georg said what he's really looking for is a feature in the IDE that generates a JSP skeleton and some action classes to display data. (We later looked a bit at the Database Explorer and then talked about how nice it would be if you could drag and drop a table entry into a JSP page and then have a table with rows and so on generated for you.) In this context, BIRT was mentioned obviously.
- Project management. If the NetBeans developers I met in Egypt (Mohamed, Ahmed, etc.) are reading this, maybe you should consider this for your thesis—a plug-in module for project management. For example, the manager could assign a task, the developer could then see a task list, the manager would be able to see the developer's progress and the time worked on the project. Yes, a lot like MS Project, but then inside the IDE. It could maybe be some kind of extension or add-on to the Collaboration module? Anyway, Peter said that that would be really useful in his environment.
- Wizards for creating Ant targets. Georg mentioned that newcomers to Ant would find wizards useful, in the same way that newcomers to JSP files find the JSP wizard useful. I think that's a great idea.
- RSS FeedReader. Instead of as a rich-client application, Georg said he'd like to see it as a plug-in module (and then I dropped a hint about the Welcome Screen redesign).
- Update Centers. Peter asked about private update centers. Georg said he'd seen www.nbextras.org and thinks it is a great idea. I told Peter the basic infrastructure of private update centers. He asked whether it was possible to set one up without having access to the Internet (he rarely uses it from work, ditto his colleagues). I said "of course" and told him he could put the autoupdate descriptor and the NBM files on a server of his choosing, which could be internally within a company. (And then I mentioned that, given the fact that we now have www.nbextras.org, that his use case would probably increasingly become the typical one for use within a company, while distribution across the world would be done via www.nbextras.org.) And then... I demonstrated how NetBeans IDE 5.0 Update 1 (which is a plug-in module that is curently under development, that will provide various enhancement to the 5.0 module development toolset and that will be made available around the end of the month) generates the autoupdate descriptor for you! I also demonstrated the Update Center wizard, which automatically registers the URL to an update center in the user's Update Center wizard. Georg mentioned that it would be cool if you could immediately deploy the NBMs and the autoupdate descriptor to the server via Tomcat, but that's not something I knew enough about to give an answer to. The quality of plug-in modules on www.nbextras.org was also discussed—there should be some kind of standard naming conventions there, we all thought.
- SQL Editor. Georg mentioned that in the previous version of the SQL editor (which wasn't really an editor at all), it was possible to see the request history. You could see what requests had previously been sent to the database. This is no longer supported. (Why, Andrei, why?) And, there was an odd thing that Peter showed me—if you do "View Table" and then change the width of a column to make it more readable, the column width jumps back to the original width when the next query is returned. He'd like the modified table width to persist across query calls. Also, Georg pointed out that it would be nice if you could copy an SQL query and then paste it inside a Java source file in the IDE, and then have the IDE generate line endings and quotation marks automatically.
- Installation of Mobility and Profiler. I think it was Georg who mentioned that he found the installation of these two add-ons as pretty counter-intuitive. I agree. What exactly is going on there? Sure, they're both very large, but why aren't they in the default IDE (why do they need to be downloaded and installed separately)? I think this is more a question of the relationship between these two and the IDE is not very clear. "What's the story here?", is what they were basically asking.
- Collaboration Server. Peter asked how a collaboration server is set up. I didn't know but hope someone else reading this does! (If not I'll try to find out some other way.)
- Tutorial Cemetery. There were some funny ideas for the docs department which I thought were really great: firstly, a "tutorial cemetery". Specifically in the plug-in module area, more and more templates are being created by the module development (a.k.a. apisupport) team. As a consequence, more and more tutorials are either going to become obsolete or much (much) shorter. To illustrate this growing list of templates for plug-in module developers, how cool would it be to create a "tutorial cemetery", i.e., a list of tutorials that you no longer need? Secondly, they suggested a document called (something like): "Favorite Boilerplate Code That I Don't Have To Write Anymore". Cool, right? In that document, there'd be the stuff that you find in the JSP template, servlet template, Actions API template, and so on. It would, again, underline the strength of the IDE and its usefulness in requiring you to only provide non-boilerplate code.
- Wizard wizard. Georg had recently started looking at the Wizard wizard, which kickstarts your work with the Wizard API. Do you know what the first thing he said was? He said he wanted a wizard to create the files for new steps (this is something I've brought up to the apisupport team myself, but will now do with even more vigor). He also asked for some documentation on this wizard and the Wizard API. I told him that unfortunately no tutorial exists yet (because I don't understand enough of it yet), but that I have several blog entries that discuss the API and the Wizard wizard (and, in fact, I've seen these blog entries being referred to in mailing lists as some kind of reference material). So, Georg, if you're reading this, here's the list of blog entries that I've thus far dedicated to this matter:
You'll see that the above blog entries are very simple and provide introductory topics only, but given your experience, I wouldn't be surprised if you end up working the rest out for yourself. Of course, though, more documentation (a full-blown tutorial) on this is needed. However, as I told him, various people have internally been wondering about this API and what exactly its future is in its current form.
- NetBeans Training. There seemed to be general consensus that NetBeans trainings would be a good thing (in Peter's case, he mentioned that new colleagues in his department follow some sort of internal NetBeans training—how cool would it be if the NetBeans team were to provide those trainings? Especially now that Gregg has put together such excellent beginner materials for the 'Train the Instructors' training sessions?) Also, rich-client application trainings were mentioned (and I told them about Tim sending a great-looking training document that is, at least the interesting bits, mostly in Portuguese). I did a cool demo for Georg and Peter—I created an application skeleton (i.e., module suite project), excluded IDE modules, showed that the splash screen could be changed (as well as other branding matters), and then generated a ZIP and a JNLP application. (For the ZIP, wouldn't it be nice if somehow the JDK used by the IDE could be specified in the .conf file? Currently, it is really hard to track why the generated executable doesn't work, initially.) I also showed the layer.xml browser and how you can delete menus from the NetBeans Platform. So, yes, I basically showed them the principles outlined in Jarda's great NetBeans IDE 5.0 HTML Editor Tutorial.
- Copy Project and CVS. Georg mentioned that you lose the link to CVS when you copy a project, because the CVS folders are not included in the copy.
- Proxy server settings. Peter mentioned that there's no way to exclude localhost (and anything else) from the proxy server setting in the IDE. Even when you use the system settings, the excluded servers are not recognized by the IDE.
- Spaces, again. Another problem involving spaces: when you create a project, the project name is also the name of the project folder. But the project name cannot contain spaces, while Georg's project folders do contain spaces. (So his workaround is to create the folder externally and then import it using the 'New Web Application from Existing Sources' template.)
- Sang and Sandip are famous! Georg praised Sang's JavaPassion site to the skies and Peter had never heard of it. So, my guess is, he's going to give it a look. Sandip was also mentioned spontaneously by them—especially the 'Copy Up/Down' plug-in module was something Peter was happy about, but he was also aware of the 'Java Type Hierarchy' plug-in module. Peter really likes Sandip's magnifier tool too (he said that he had "always missed that").
- The future of NetBeans. We talked a bit about future releases of NetBeans. (I had sent them a link to Gregg's great blog entry on this matter beforehand.) Of course, we talked about how cool UML support and JSF editor support is in one or two other products provided for free by Sun!
Of course, many other things were discussed, but I didn't note down everything. Also, I may have misinterpreted some of the comments (so, Peter and Georg, feel free to fill in details or expand on any of the above points). At the end of our discussion, I gave them each a brand new NetBeans IDE 5.0 CD, a "Are You Still Working in the Dark?" t-shirt, and a copy of the NetBeans IDE 4.1 Field Guide (signed by Patrick himself!), even though they each already had a copy of the book (how cool is that), but more in gratitude for the time spent and the information gleaned.
By the way, on Wednesday I'll be in London without anything to do... is there anyone out there who'd like to meet for a chat?