Opening SessionYes, the speaker was Neil Armstrong, no I didn't like the band. Now that we have that out of the way... This year's theme is "It Revolves Around YOU". 2006 was the best year ever for Lotus and they have experienced 2 years of double digit growth. To quote Mike, "When people deliver what you need when you need it, big things happen."
Neil's monologue was engaging, interesting and compelling. He spoke of his career that led up to the moon landing, and said role was that of a simple technician: his job was to install mirrors on the moon to measure its distance from the Earth. I sure didn't know that, I thought it was a macho "let's get there first" response to the Russians launching the first satellite and doing the first space docking. Near the end of Neil's speech he was discussing the effort involved in doing something well, and continuing to do so: "There is little satisfaction in achieving the easy goals." I'll be sure to keep that in mind.
Two new products were announced: Quickr and Connections. According to comments on Ed Brill's blog, Quickr 8.0 will replace QuickPlace. I find that particularly interesting since QuickPlace 8.0 was either announced or released during Collaboration University back in September. The demo of Quickr was boring until they showed this:
- Create a new memo
- Open the sidebar in Notes 8
- Select your Quickr file library
- Drag a file to an e-mail
- Send it to someone
- You're asked whether you want to send an attachment, or just a link to the document in your file library
Connections, I just don't get. It's "social networking for business". Umm.. okay.. whatever. The only thing that interested me is Activities rolls up under Connections and so does Dogear. More on that later.
Quickr Personal Edition is being made available for free to all Notes and DWA licenses under maintenance when Notes 8 is released. Likewise, Lotus Component Designer is included in the Domino Designer entitlement. More on that later, too.
Websphere Portal Express 6.0 was also announced. Supposedly it can be installed in under an hour, which is a tremendous improvement over the several days it used to take. Apparently it's severely limited in what it can expose and consume, but it might be worth looking into.
Everyone on stage was extremely careful to NEVER mention "Eclipse RCP". It was always referred to as Lotus Expeditor, which helped cement what it is. It's just the guts that runs Notes, and you can license it standalone too. I'm not quite sure of the use case for that, but whatever works for them.
AD102 - What's new and next in Domino Designer
Notes and Domino 8 are web service consumers out of the box. Andre Guirard demoed creating a LotusScript script library, importing a WSDL file, and it automatically created LotusScript functions out of the XML. Very, very cool stuff.
NSFDB2 includes what's called DB2 Federated Data. This lets you put non-DB2 data into a Domino Database Access View. This is interesting because now you can take, say, your Oracle data on products and surface it directly in Domino without having to import the records into Domino or set up DECS or LEI.
There is now an OnSelect view event!! It fires after every document selection in a view, and you can write your code in LS! YAY!!
Most of the new features are only available if you're running composite applications, which requires the Expeditor-based client. You can create a new composite application by creating a new database and selecting the template - Blank Composite Application -. You can retrofit an existing application by using the new Launch option Launch as Composite Application. For Notes 7 apps that you want to launch as composite apps in Notes 8, there is an additional set of properties. Sorry, I missed them, Andre was going about Mach 3 by this point.
- Thread Views - This lets you define a column as expanding and showing a related view. So, for example, you could have one view that shows records from your Items forms and when you expand it, it shows entries from your Orders view. There's still some wiring that ties the two together, but you no longer have to build huge forms with every possible field, you can tie together related data much more easily.
- View Property: Viewers - This lets you choose possible orientations or layouts for your view. The standard is Table, but there is also a Tiled version, which is what the business card layout in the new Address Book database is. The list of Viewers is not a dialog or selectable list, you have to know what the possible options are. Andre suggested pulling apart the existing code to find them. Yikes!
- Column Properties - You can specify column wrapping, so if the screen isn't wide enough the columns actually snake around, and you can also specify ANY column to expand as the screen width expands. Currently it's just the last column that can do that.
- Action Bar - Split action with subaction buttons. If you click the large portion of the button it executes the first entry in the action list. If you click the dropdown side of the button you get a list of all the subactions.
- Partial Response Hierarchies - A response without a parent will be displayed as a main document. I'm not sure what the use case is for this, but lots of people applauded so I thought I'd mention it.
- Action Bar - Disable default actions in context menu. That's right, you now have complete control over what is in the context menu!
- View Column property - Defer index creation until first use for columns with click sorts. This prevents the click-sort index from being created immediately.
- RichText Light - Thumbnail content option, will automatically scale a picture you insert.
- Agent Trigger - On server start, to run an agent when a server starts.
- Database property - Don't allow simple search. This affects how the server behaves when users execute a search on a database without a full text index. Instead of churning forever then returning the "there is no full text index" error on the console, it will notify the user that it can't do the search.
The only person on the stage I knew was Mike Rhodin. In the audience was Julian Robichaux, Bruce Elgort, Ben Langhinrichs, Bill Buchan, John Head, Sean Burgess, Chris Miller, Chris Byrne, Volker Weber, and several others I didn't know. I apologize to anyone I left out, I just don't know your name! Ed Brill and Alan Lepofsky were also in attendence. We were joined by two people via teleconference and I didn't write down either name. During the intros of Mike and crew one of the people on the conference call asked how to spell Mike's name, and the room erupted in laughter. If you don't know who Mike Rhodin is, why the hell are you here?
Mike started out with about a 5 minute re-hash of what he covered in the Opening Session, then took the first question. Julian Robichaux asked about Activities and how that is being delivered from a technical perspective. It was discussed as part of Connections during the Opening Session and he wanted clarification. What followed was a 10 minute monologue by Mike that didn't really answer the question.
The only thing I gleaned from it is that Domino, Sametime, Portal, Connections and Quickr comprise the Workplace strategy. Within each of those there are additional features, such as Connections containing Activities and Dogear. In the case of Connections, when you license the higher-level product you get all the underlying functionality. Don't quote me on that, but that's how I understood it.
Next up was John Head, who asked about simplifying Web 2.0 technologies for Domino developers. Again, there was no clear answer. Different people on the panel discussed what was being delivered in Portal, RAD and Lotus Component Designer, but nobody really said much about how that applies to Domino developers.
The next question was from Ben Langhinrichs, who asked about the relative complexity of implementing some of these new products. He pointed out that Eclipse moves on its own release cycle, as does Java. What was Lotus doing to insulate their products from developers who deployed other tools built on these products. The answer is Notes 8 and Sametime 7.5 are both fully self-contained. They have their own highly optimized JVM's built in, and all the code is already compiled. Finally, a relevant answer!
And then we were out of time. Mike agreed to take one more question, and Chris Byrne brought up IBM's extremely visible presence in Second Life. Chris has blogged about his distaste for this in light of the questionable content in Second Life. I appreciate Chris' interest in this, but I really don't think this was the proper venue to address the issue because nobody else in the room particularly cared. It's like that one person during Gurupalooza who asks some nitpicky environment-specific question.
A few more things I got out of the ramblings was Mike's views on the high-level vision for Quickr and Connections. Quickr is about content: files, Notes documents, chat history. All those things users need to archive and find. Connections is about people, and tying the Quickr data to them: Activities and Dogear. He also commited to delivering everything that was discussed by the end of 2007, and a public beta of Notes 8 next month.
AD502 - Writing maintainable codeOkay, I'll admit it. I write some pretty horrible code. Most of you have seen it. No comments and little attempt at explaining what's going on. I'm a solo developer, why on Earth would I need comments? After sitting through this session, I'm very, very ashamed.
Here are some of the suggestions Rocky presented:
- Name things in a way that is self-documenting. This is largely common sense, i.e., don't call variables var1, and use Option Declare. However, it got a little more subtle. How about naming script libraries so you know what they are when you use them? Such as LS.Person.FE.6. This is a LotusScript library, related to the Person form, it's Front End, and it's for Notes version 6. Now that just makes too much sense. He had a similar set of recommendations about most design elements and it is rather lengthy, so I won't go into them here. You can download the presentations from the developerWorks Lotus Sandbox after Lotusphere is over.
- Comment your forms and subforms. Include a section at the top of a form that identifies the Purpose, Comments, Uses, Used By, and Edit History. Again, another *duh*. A suggestion for subforms was to include a delimiter at the top and bottom to show where it starts and ends. This is so you can tell what's a subform when you have it embedded in a form. Something like this:
>> Begin Subform
[subform layout stuff]
>> End Subform
Again, simply brilliant in its simplicity.
- Create script libraries for field events. This one is less obvious, but it makes a lot of sense. Instead of stuffing hundreds of lines of code into a form's events, create a script library with the same name as the form, then functions to correspond to the form's events. Then on the form just reference the function. This makes it much easier to know which events have code behind them, and you can edit it without having to modify the form.
Meet the Developers Lab
A while back I played around with the Lotus Component Designer. I did a little more tinkering after that post and I mostly figured it out, but I was still left wondering why it was relevant to me. I don't use Portal or really have a use for it, and deploying LCD to WAS CE just gives you a browser interface. I saw a little more about composite applications in the past few days, and it hit me: What if I could use LCD to create a component, publish it on WAS CE, then surface it in a composite app? I would get all the goodness of working in an Eclipse-based IDE, I'd be moving toward a Java-oriented environment, and I'd have some more options available when I create composite applications.
Sadly, that's not possible. In order to wire LCD components into a composite app you have to run it through Websphere Portal. Said another way, LCD is useless unless you also run Portal, or you're satisfied with just a web interface. The only path for getting LCD components into Notes 8 is to use Websphere Portal. Bummer.
The guys in the Meet the Developers Lab did describe a process where you could create a ZIP file of your component, unzip it on a web server, then send people a link to install it into Notes 8. But then you can't manage the application. When you do ANY update you have to send the users a link to download the updated component. I'm noodling the possibilities for working around that.
I spoke with Peter Jantzen (hope I spelled that correctly), the product manager responsible for this area, and he said they're trying to find the right approach. I think this is one of those disconnects between IBM and their customers. I'm a fairly small Domino shop (200 users) and I really have no use for WAS or Portal. However I do want to use LCD because, quite honestly, I have no idea when Domino Designer will stop sucking and I'm tired of dealing with it. Designer on Eclipse (which I saw demoed today) won't be available until post-R8. Nobody will commit to anything so it could be 8.01 or R10. It looks like my only option is to just deal with it, or migrate to something else.