OpenSocial (iGoogle) gadgets in Eclipse

I’ve been reading some blog posts about the upcoming Eclipse v.4 (or e4) and which features are planned for this release. One of the posts (OpenSocial (iGoogle) gadgets in Eclipse) discusses how Google Gadgets might make their way to Eclipse as views (ViewParts). Being a Notes user this is what we’ve had for a couple of years as MyWidgets but it’s always interesting to speculate who influences who… ๐Ÿ™‚

It is becoming very clear to me that Notes as a platform is a good citizen in the Eclipse community by drawing from the community but also giving back to it.

New pet project: LiveTextr

Part of my job, interest and efforts goes towards illustrating just how extensible the Notes 8 platform is. Part of this is playing around with the platform and trying to do stuff to illustrate how the platform may be extended. One of the very cool ways to extend Notes 8 is using widgets and LiveText but debugging it can be a hazzle due to the way widgets are created and installed into the platform. The goal of my latest pet project was to alleviate some of these pains and make it easier to work with LiveText.

So I’m happy to show of LiveTextr!

LiveTextr is a sidebar plugin for Notes 8 that allows you to test LiveText regular expressions against the Notes documents you have open in Notes without creating a widget first. This means that I can open a document that contains some text I would like to test against and start writing regular expressions and have them debugged in the Notes client before doing the actual widget. Installing and testing the pattern is done by clicking a button and the pattern is dynamically added to the LiveText engine.

The first screenshot shows me debugging a pattern right there in my Notes 8.5.1 client.



Click image for larger version

LiveTextr also provides you with instant feedback on the syntax of your regular expression as you write it. This is also a problem with the built-in model as there’s no way to test your regular expression as you write the widget. The second screen shot shows the current feedback (shown in red text) when the regular expression contains errors.



Click image for larger version

Further improvements I’m planning is to allow users to build regular expressions visually (or at least without having to know the syntax of regular expressions) and to handle capture groups. I also plan to open source the project on OpenNTF.org.

Stumbled upon interesting URLs from the Notes 8 client

So I was trying some stuff in Notes 8.5.1 yesterday and stumbled upon the following two URLs which I found quite interesting:

  • notes:///clientbookmark?openworkspace
  • notes:///clientbookmark?openreplication

These are of course probably 100.000% unsupported but in my Notes 8.5.1 client they do exactly what they say. The first open the workspace and the latter the replicator. That’s cool! They probably also work all the way back to Notes 8.

Happy Friday!

Experiences from doing Notes 8.5 application development workshops

Tuesday, Wednesday and Thursday of this week I conducted the third installment of my Notes 8.5 application development workshop to 10 new attendees. This workshop is quickly becoming a big success and as of now 3 more workshops are planned in the near future. I see the big interest in the workshop as an indication that companies and developers are interested and excited about the new Notes releases – especially Notes 8.5. There are of course good reasons for this as Notes 8 is the first Notes release in a long time to actually contain major new features and improvements to the application development platform.

Another interesting thing is that the interest in the application development workshops seems to carry over to Domino administration. Quite a few attendees has gotten back to me asking for an equivalent administration workshop which I find interesting. These are exciting times for the Lotus Notes and Lotus Domino platform.

The agenda of the workshop looks like this:

  • Day 1
    • Introduction to Domino Designer on Eclipse (DDE)
    • MyWidgets / LiveText (introduction and exercises)
    • XPages (introduction, “simple exercise”)
  • Day 2
    • Recap day 1
    • XPages (continued), more details
    • Extended XPages exercises
    • Introduction to Composite Applications
  • Day 3
    • Recap day 2
    • Composite Applications exercises
    • Introduction to Eclipse and Lotus Expeditor infrastructure
    • Introduction to Notes 8 Java sidebar plug-in development
    • Sidebar plugin exercises
    • Recap day 1, 2 and 3

Among the topics covered XPages and MyWidgets/LiveText are the ones that garner the most interest by far. Once attendees discover how quickly and easily they can construct applications using XPages they are very excited. It’s funny to simply sit and observe them as they complete the “simple” introductory exercises where they create XPages, play with data binding, auto-suggestions for text fields, themes, styling etc. They tend to smile a lot! They are amazed of how easy it is to develop applications and how quickly they can produce a professional looking application. The fact that all the @Functions have been converted to JavaScript is of course a big win as even Notes 6.5 / 7.0.x developers are productive right out of the gate.

Couple this with the fact that XPages will run natively in the Notes client come Notes 8.5.1 and they’re definitely sold! They’ll never go back to WebQueryOpen agents again that’s for sure! ๐Ÿ™‚

After XPages comes MyWidgets and LiveText in popularity. Many, if not all, start out with the same approach to widgets as I had when I first heard of them namely “why would I ever want widgets in my Notes client?” and “how can a Google gadget make me more productive?” Once they are introduced to the technology, see how easy widgets are to develop and how widgets can be coupled to the Notes client using LiveText they are sold. They see why MyWidgets and LiveText might be the easiest and most powerful way to add functionality to the Notes client and why it may be one of the greatest additional to the Notes client in a long time.

Now comes Composite Applications. Understanding the concepts and the technologies behind Composite Applications and seeing the benefits and how Composite Applications can be applied in the real world is difficult to some of the attendees. All are able to follow the exercises and all see what IBM Lotus is trying to achieve with Composite Applications but few will start developing Composite Applications back home. I think this is due to the concept being a bit too abstract and because it’s too difficult to develop the applications. There’s too many things you “just need to know” such as obscure component/page preferences and the UI is not up to par. I tell attendees that much has changed for Notes 8.5.1 but I fear that many still find it too difficult to bother messing with. I hope I’m wrong but that’s how I see it.

The final topic covered is Java plugin development for the Notes 8 client. Attendees get an introduction to Eclipse/Lotus Expeditor and the plugin architecture of the client – basically I do a presentation like my Lotusphere 2009 session before they do exercises. I also show to series of demos of stuff that can be done using plugins that cannot be done any other way.

I find that many attendees like the flexibility and power they get from Java plugins but that the feedback is also that the learning curve is too steep. Many attendees lack the application development and Java skills required to develop these kinds of plugins. For many it also becomes a question of where they get the most “application development bang for the buck!” Spending their time learning XPages and MyWidgets and hoping that MyWidgets grow more powerful in time, or start learning Java to embrace Java plugin development. Many opt for the former which I guess is understandable.

To sum up the feedback from these workshops have been great and they are a big win to our customers. Attendees see the power of the Notes platform and I feel that attendees leave with renewed excitement about the platform and I trust that they carry this excitement back to their respective jobs and companies. They leave with a renewed interest in Notes and seeing it as a platform – not as an e-mail client

A word about week numbers

Got a call from a customer the other day who could not understand that the week numbers that showed up in his Notes 8.x calendar was different from the ones on this printed wall calendar. The reason for this is that by default Notes 8 uses the operating system default for calculating week numbers. Here in Denmark we use the ISO 8601 standard which is a little bit different. It is my understanding that previous releases of Notes automatically used the ISO standard. I could be wrong though.

Thankfully the Notes developers know about these regional differences and there is an option to change the way week numbers are calculated. To change it open File/Preferences… and open the “Calendar and To Do/Regional Settings” page. On the bottom you’ll find a option to change between using the operating system default and using the ISO standard. There even is a way of doing custom week numbers if that’s needed.

So there you have it. For most the ISO standard is probably the way to go.

Notes / Eclipse / Lotus Expeditor mapping

Developing plug-ins for Lotus Notes or Expeditor can be complicated enough but you also have to look out for platform differences and the difference in capabilities between different Notes/Expeditor/Eclipse versions. To make this easier for myself I’ve started compiling a Notes version to Eclipse version to Expeditor version mapping table (Notes / Eclipse / Lotus Expeditor mapping).

If you know one of the missing versions please let me know so the table may be complete and be a good reference for us all.