Lotus Traveler calendar invites on iPhone caveat

Just after we had our main Domino servers in the office upgraded to 8.5.1 FP1 I looked into doing to Lotus Traveler configuration updates required to be able to process calendar invites on the iPhone. I did the changes, restarted Lotus Traveler but were unable to see invites on my phone. I messed a little around with it but with no success. Today however I heard other iPhone-enabled colleagues mention that they processed invites on their iPhones. WTF!!

Tonight it hit me why. I have been using the Notices mini-view in my Inbox to show calendar invites for easy processing. Having invites show up in the mini-view apparently blocks the invites from reaching my iPhone because after disabling the use of the mini-view in the mail preferences and sending an invite from my private e-mail/calendar system the invite appeared right away on my iPhone. So there it is – problem solved.

Extending DDE – creating custom context menus

Part of my new LotusScript.doc release is of course finding ways to make it even easier to use and use the API that’s now supplied as part of LotusScript.doc. Central to all this is extending DDE to make LotusScript.doc accessible in a variety of ways. Today I’ll show you how to add context, i.e. right-click, menus to the DDE navigator on the left as you can see below.

Doing this is actually very easy and only comprises of an IViewActionDelegate (the code; implement org.eclipse.ui.IViewActionDelegate) and a entry in plugin.xml to indicate where to stick the action. In this case it’s an objectContribution to org.eclipse.ui.popupMenus:

<extension point="org.eclipse.ui.popupMenus">
   <objectContribution adaptable="true"
      id="com.lekkimworld.dde.navctxmenu.objectContribution"
      objectClass="org.eclipse.core.resources.IFile">
      <action
         class="com.lekkimworld.dde.navctxmenu.MyContextAction"
         enablesFor="2+"
         id="com.lekkimworld.dde.navctxmenu.action"
         label="DDE context stuff (select min. 2 design elements)"
         menubarPath="additions"
         style="push">
      </action>
   </objectContribution>
</extension>

The above should be pretty much self-explanatory.

The example code is available for download as an Eclipse project: com.lekkimworld.dde.navctxmenu.zip

Signing of from 2009 – looking back at a great year

2009 is drawing to a close and in less than 10 hours I’ll be in my tuxedo and drinking champagne. What a year from a personal and a professional perspective.

On the personal front the highlight of 2009, by far, was on 22 August where I got married to my lovely wife. 4 months into our marriage we’re having a blast. Not much have changed in our relationship which I take as a good thing. I’m looking forward to January and once again bringing her along for Lotusphere. I think she’s growing used to staying in the Swan and the fact that return guests get some good deals at the spa… 🙂 Apparently some sun and warm weather (crossing my fingers) in January doesn’t hurt either.

On the professional front it’s been a year of both many changes and new challenges. As previously the year really got kicked of at Lotusphere and it was very nice seeing all of my “collegues” again and hooking up. I’ll remember BALD, being part of the blogger program in those yellow bean bags, frost in Florida in January and the associated state-wide “panic”, giving a session with good reviews though having a high fever and missing 1,5 days due to sickness as the highlights of my Lotusphere 2009. Of couse being in the US for the inauguration also made it special. Being “on location” in Florida bar for Superbowl was also a very nice experience.

The rest of the year has been filled with a lot of consulting on Notes and Domino, Lotus Connections and other related Lotus products. It’s been very nice being able to share experience and consult on a wide variety of subjects. 2009 was also the year where I started doing a lot of teaching and we started doing Notes 8.5 Application Development workshops. I’ve been giving the workshop a number of times across Denmark during 2009 and it has always been a good experience. Of course some workshops has been better than others but I have always felt that I’ve given the attendees what they signed up for and all attendees have gone home amazed at the potential of the new Notes releases. If only more would take the time to learn Java – that’s still the Achilles Heel of IBM Lotus

Towards the end of 2009 I have also assumed the day to day management of some of the developers in the company. It’s been a big change from billing out 40-50 hours a week to mostly managing and planning. It’s also meant spending far more hours in the office which has been weird. I set a personal record this winter by having lunch in the office 12 days in a row. That’s a first in my 2+ years at IntraVision. The change of role has been fun but also a big change and challenge and something that I’m finding myself enjoying very much. I’m looking forward to the new year and getting more into that role.

In 2009 I have also enjoyed still being part of the Design Partner programme with IBM. It’s fun, educational and inspiring to be part of these conference calls and getting the inside story. The calls are something I look forward to attending and the debate is good and lively. Of course it’s also frustrating sometimes when IBM Lotus do something that we design partners just don’t get but that’s part of the deal. All in all I still find it very positive that IBM Lotus listens and lotusknows it makes a difference! 🙂

On the whole lotusknows thing I find it very positive that IBM Lotus finally got the message and starting being offensive. We still haven’t seen much, if any, of it here in Denmark but hopefully it’s coming at some point. There’s still a big need for air cover.

In November this blog turned 5 years and it was a milestone that were reached. As I wrote on that day, this blog is something I cannot imagine not having today. The blog and way it connects me with the community is amazing. Of course more and more communication moves from blogs to Twitter these days but it’s all good.

2009 was also the year where I finally got to finish LotusScript.doc version 2. It’s been a long time coming and it was very nice finally to get the new version out there. Expect interesting stuff to be coming your way in 2009 when I start leveraging the LotusScript.doc Java API in other contexts.

In three months TwitNotes turns 2 years – wow! Has it already been that long? Besides, of course, being my Twitter client of choice it has also served as a very good example in all of my speaking gigs as one of those new applications that are possible in the “new” Notes client. TwitNotes is an application that builds on the Notes foundation but reads and writes data in the cloud. Showing it as an example always raises some eyebrows until people “get it”. I used it as an example for the big IBM Software Day event here in Denmark this fall.

As 2009 draws to a close I’m doing another sidebar application that I hope will be useful for many of you out there although I’m mainly doing it for myself to increase my productivity. I hope to be able to reveal it by Lotusphere. It’s again a cloud-based application that integrates into the Notes experience to showcase just what’s possible with the “new” platform. Stay tuned…

Before I write too much I’ll wrap it up by wishing you all a very happy new year – see you on the other side. For those of you going to Lotusphere – see you there!

Bye, bye 2009…

DDE keybindings and preferences

Domino Designer on Eclipse (DDE) is a huge leap in the right direction for our IDE of choice. I agree there is room for improvement but be sure that IBM Lotus knows this as well. Having DDE is a big help in my day-to-day work and with the right key-combinations and the right tweaks to the preferences it can become even better. Below are some of the nice keybindings I find myself using all the time and the preference tweaks I always do.

  • Ctrl-F6
    Switch view – allows me to easily switch between editors using the keyboard
  • Alt-<arrow back>
    Back in history, not within same editor (i.e. when jumping lines) but between editors
  • Alt-<arrow forward>
    Forward in history, same as above
  • Ctrl-Alt-L
    Goto correct Erl() line

The last one is probably one of the most important functions you should know when making the transition to DDE. Many developers have discovered that the error line number reported by the Erl function in Notes isn’t necessarily the correct line when trying to locate the line in DDE. Is problem stems from the way the new LotusScript editor calculates line numbers. This is a *MAJOR* flaw IMHO as line numbering is so basic to an IDE that it should just work! This is however not the case but luckily IBM Lotus has provided us with the next best thing namely a function to convert the Erl() line number to an actual line number in DDE. Knowing the key combination to invoke it makes it less of a hazzle.

In the preferences I normally tweak are the following:

  • GeneralEditorsText Editors
    Show lines numbers
  • Domino DesignerLotusScript EditorFonts and Colors
    Minor tweaks to the default color setup to make code easier to read.
  • Domino DesignerLotusScript EditorRemove existing object code when saving with errors
    In DDE you may save LotusScript code with errors but then what should happen to the compiled object code (the code actually being run). Should it be removed or kept in place?

Besides all of the above a thing to remember is that DDE is a brand new beast and simply sitting down in front of it and using it without investing any time in getting to know it is pretty arrogant and probably also a little stupid. I really suggest spending some time getting to know it and making sure it looks, acts and feels like you want it to.

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!

Why you should get Notes/Domino 8.5.1 if you take Notes as a PLATFORM seriously

Yesterday Ed asked “Notes/Domino 8.5.1 available: So what do you think?” so I thought I would take a little time and reflect over the new release. I have to admit that I have been running 8.5.1 as my production client for so long that it’s difficult to remember what’s new but I’ll give it a try.

For me as developer and a “Java guy” the main things about 8.5.1 is of course the new DDE extensibility API and the official release of the Java UI API not to mention that we FINALLY have a decent LotusScript/Java editor in DDE. That’s great but that’s is not it.

On of my biggest pet peeves with IBM has been how they for a long time referred to Lotus Notes as a mail client. It IS a mail client but albeit much more than that. By far. Notes 8 (Standard) showed the way by giving us a PLATFORM to develop for. Part of the platform is Java extensions no matter whether they are for the sidebar, toolbar or context menus. Java extensions are of course also an integral part of the Composite Application framework. The biggest problem with the Java extensions when Notes 8 came out was that they were hard to provision to users. That was later remedied by the introduction of widget descriptors (drag’n’drop install of Java extensions to the MyWidgets sidebar or using the widget catalog) so that’s great. The approach had however one major flaw in that the Notes client prompted users when installed unsigned Java extensions. There were ways around it but it wasn’t pretty.

So….

The reason to get 8.5.1 if you take Notes as a PLATFORM seriously is a little, tiny, addition to the security policy in Domino Directory. “But you’re a developer” you might say and you’re (mostly) right. This addition is however of great importance to all developers – it may just be the one thing that gives you success with your Notes Standard client deployment.

Once you have upgraded to 8.5.1 open your Domino Directory and check out the Security Settings document for policies. Switch to the “Keys and Certificates” tab and scroll to the bottom. Look closely – you might not see it at first. Way down of the bottom there is a new section called “Administrative Trust Defaults”. In this section you can specify the internet certificates and/or internet cross certificates to deploy to your end users using policies. With this crucial piece in place you can deploy signed Java extensions to end-users and have them install them without being prompted. At all!! The wont get confused, they wont have the option of aborting the install. This is great news and it works great.

Now that we’re able to push internet cross certificates to end-users these issues goes away. So go!! Deploy away!! Break out Eclipse and get going writing these Java extensions and deploy them seamlessly and transparently…

Of course there are caveats and stuff you need to know but that’s for another day! Oh – and that’s what Lotusphere is for! 🙂