You have to admit, Flash is shiny

Today I went through a bunch of tutorials and flows in the WebSphere Commerce Management Center – which just happens to be a Flash application written with OpenLazlo. The application is very responsive and its basically a “rich application” with full drag and drop, copy paste, and context menus all within the browser. Check out the screen shot of the center running in FireFox:

Click to make larger

I was practicing some customer scenarios and learning the different pieces of the Commerce product. Today I played with associations and marketing campaigns. But that’s not what I am blogging about tonight. Continue reading

IBM Sales Center – an Eclipse RCP application

Often a community does not know about other communities or what technologies they use every day are also used in other products or industries. The IBM Sales Center is an Eclipse/Lotus Expeditor based application and it is used in conjunction with Websphere Commerce and more specifically in call centers. The application allows connectivity to multiple stores allowing a single person to support many storefronts.

IBM Sales Center for WebSphere Commerce is a new and separately orderable feature that leverages the catalog, order management, promotions, and merchandising capabilities of WebSphere Commerce to provide call center representatives with the functionalities they require to service and up-sell to
cross-channel customers. — link

Six month contract for Lotus Expeditor Developer/Administrator

I wanted to pass this on, I received this in my personal email.  If you are interested in this job I can get you in touch with Mani.


This is Mani from Deegit IT Solutions Inc. Here is the requirement open with us. If you are interested please get back to me with your latest word formatted resume along with contact details.

Job Title: Lotus Expeditor – Systems Architect/Engineer/Administrator

Location: Chicago, IL

Duration: 6 Months

Must possess hands-on experience in the administration of Lotus Expeditor

Candidate will need to have deep knowledge of how to create composite applications using Lotus Expeditor, in conjunction with Websphere Portal.

Candidate should have experience assembling composite applications that span diverse environments, including:

  • Java based home grown applications,
  • Web based applications both internal and third party,
  • Windows based applications
  • 3270 and 5250 applications

Candidate should have experience with development environments comprised of  representative tools such as:

  • Window Builder Pro
  • Expeditor Toolkit
  • Expeditor Client
  • Drools
  • Eclipse/JBoss Dev studio,
  • ClearCase Plug-in

Candidate will be expected to author policies and procedures defining how to use Lotus Expeditor in the client’s setting to provision composite applications.

Please send resumes ASAP

Thanks & Regards,


Lotus Notes IS the ultimate platform

While I completely sympathize with the people who have lost large contracts, work, or even their jobs because of some company moving to another platform I honestly do not understand some of the comments about Notes not being a good platform for application development.  I do think IBM AND the Community need to do a much better job marketing things like the Eclipse and Lotus Expeditor Platforms because that is what its primary installed Lotus offerings are based on.   More and more companies are getting it, each week I hear of a new plugin, extension, or Eclipse view being created for some use case – so its not only the few business partners that have given Eclipse programming a chance, IT shops are starting to get it.  What I would like to see are more business partners expanding the organic marketing campaign of Eclipse and Expeditor.  XPages has gotten a lot of attention but I think once again the client has gone to the back burner; but I also see a lot of stir in the client space with plugins coming from partners like GIST, LinkedIn, SAP, customers, etc.  I was just at customer site yesterday and they have built an amazing plugin that integrates Notes with EMC’s Documentum – it was very cool – and guess what – that was an IT shop that did it because they have Eclipse developers.

In short, you have XPages for Web and the Expeditor platform for rich client.  Mix Expeditor plus NSF, Web, Portal, SWT, and native applications and you get composite applications.  You can do things in the Notes client today you could not imagine doing in version 7 and below.  Some stuff is easier, some just different but now you can do most of it in Java and it works on all platforms.  I have personally been pushing Eclipse and Expeditor for well over four years and I am sure my readers are aware of that – we as a community need to create compelling applications that make the platform stand out!

Now, in Notes 8.5.1 you can even create XPage based components that run locally in the client – meaning write your components once and they run in both Domino and Notes applications.  Many may not be aware, but you could also do this with pre-compiled JSP’s and Portlets for over 5 years in Lotus Expeditor – and yes, that means in Lotus Notes also.  So the Notes community has had the ability since Notes 8.0 to completely enhance their skill set to industry standards like Java, Eclipse, and many web technologies.  With technologies like XULRunner in the platform the web technologies that can be deployed to the Lotus Notes client are essentially limitless and are only held back by your imagination.

I am not sure how to close this rant but in short I would like to see the community better selling “the platform” versus posting long rants in the opposite direction.  I do not speak for IBM or the marketing behind our products, I can only “sell” what the platforms can do technically and from a technical point of view the Lotus Platform is an amazing piece of software that can present amazing applications.

Listening for the Notes login in Eclipse/Java

I just had an email exchange about this with a colleague so I figured I would share with everyone.  Hunter has a nice little post with a code snippet that shows how you can listen for when the user completes logging into Lotus Notes.  Using the Accounts API’s will allow you to be notified when a user has logged into the system by setting up a listener on the service.  The great thing about this API is you can now know any time a user changes id’s or completes logging in so your code can then change its context based on the authenticated user.  This is a service the Expeditor platform adds above the Eclipse layer and is included in Lotus Notes standard edition since version 8.

How to get a bug fixed in Notes, Sametime, Expeditor, Eclipse, etc..

After reviewing some articles on I saw this short article by Remy.  Yes, it is short, but it shows the basics of how you can search the Eclipse bug system and ultimately submit a patch for a bug.  The Eclipse team is very good in responding to bugs and if you can post a suggested fix or code change it gets even easier.  This article actually shows how you can submit a bug with a patch and how to use Plug-in Spy.

“The plug-in spy aims to provide a simple tool to introspect Eclipse in terms of what a plug-in developer would find useful. Simply hit ALT+SHIFT+F1 on what you’re looking at, and Plug-in Spy will be presented to you with relevant information. This tool is part of the Eclipse Incubator project. For a complete description of Eclipse incubation please read this.”

So if you have an idea for how to fix some annoying bug in any of your favorite Lotus products that happens to be in the Eclipse layer submit or fix a bug directly to Eclipse!

Referenced article is here.

RAP or GWT – Which Java-Based AJAX Technology is for You?

I watched this video recording from EclipseCon 2009 and I think it is a great primer for these two technologies.  Dan and Mark from Instantiations do a great job laying out most of the pros and cons for them.  The recording is 37 minutes long and I think it is more than worth the time.


Reference recording is here.

Creating your own dynamic variable resolver

Just as Chuck introduced the new variable substitution support in composite applications in this article, you can also create your own variable resolver just as Notes and Expeditor have.  At the base of this technology is actually a core Eclipse extension point, the id is “org.eclipse.core.variables.dynamicVariables“.  The Lotus Expeditor platform has defined “ECLIPSE” as the tag for Eclipse preference resolver we introduce in Notes 8.5.1 as described in the article.  Further more, Karsten also commented on that article for a future enhancement to the plaform to support things like Notes.ini variables.

The beauty of this is anyone can do this and create new extensions to pull values from any system they choose.  I was kind of thinking about this and another idea might also be interesting.  Create a “POLICY” tag where it would support specifying the policy type and a field and the value would be retrieved from the Domino Policy cache on the client for that value.  This would basically give instant policy based values for component, page, and application data.  You could use this for all kinds of things like colors, formatting, geographical differences, etc.  Basically anything that is supported by Policies could be used to drive your components.  Then inside of the resolver code we would just call GetUserPolicySettings.

notesDocument = notesSession.GetUserPolicySettings( “” , name , type)

The extension point definition would look something like this:

<extension point=”org.eclipse.core.variables.dynamicVariables”>

description=”Resolves variables for Notes Policy.  The argument is of the format {$POLICY:&lt;policyType&gt;/&lt;field&gt;}.”



New “Code Snippet” category on the Composite Application Wiki

Ok, I got a great suggestion from a well known business partner – whose name shall not be mentioned but you know who you are.  The idea is just a bunch of code snippets that do very granular things and hopefully with the samples, javadoc’s and these, you can get a clearer picture on how to do things in the Eclipse/Expeditor/Composite Application space.

Here is the first posting in this new category:

Reading the page preferences for a page/perspective in a composite application

Property Converter 2 Component

I had a meeting with a customer last week and introduced the Property Converter component to them and it quickly became a design discussion.  The result was, I took the OpenNTF project and implemented these changes.  The result is a new hidden component that can have N number of properties defined and you can attach a script (JavaScript) to each of those properties to do transformations or string manipulations.  The other modification is both the new and the old component now stores the scripts in the component data (which now transports with the composite application).  This should greatly reduce the amount of Java code and custom actions many people do to manipulate strings (properties).  This also means any time you need a new transformation you simply create a new property.

Once I get the legal approvals I will be submitting this back to OpenNTF.

New features:


  • Now saves the script with the component.
  • Now uses the new API’s for tooling in the CAE
  • The Save button and text field is hidden/readonly in the runtime
  • Test button now publishes the value to the property broker.
  • Added it to the CAE palette under “OpenNTF” category

PropertyConvert2 – brand new component

  • Based on the original concept but allows N number of properties to be created.
  • Each property is associated with its own script.
  • All scripts and properties are stored with the component in the CA.xml
  • The test button publishes the property.
  • Added it to the CAE palette under “OpenNTF” category

Here is a sample of the components in the run time (can be Notes or Expeditor) – realistically these would be hidden so they would be more like service level components.  The red lines show the flow of the wiring and I used a basic web browser component to display the resulting text.  You can imagine these components are hidden and you would only have your normal application components visible and these components doing the transformation.

(click on image to make larger)


Components in the CAE:

Notice the Save buttons and the script is now enabled for editing.  The component “knows” when it is in edit mode and allows the assembler to modify scripts and add properties.

(click on image to make larger)