Lotus Notes Traveler: easy push mail for Domino

I recentry upgraded a Lotus Domino server to 8.5 and installed Lotus Notes Traveler 8.5 – and the upgraded Domino server was up and running with Traveler loaded within two hours!  Potential mobile clients could then connect and install the provided Traveler client software. However, I do not own a Nokia S60 device or a Windows Mobile device which are the devices currently supported by Traveler. I own an iPhone and eagerly await that an upcoming release of Traveler will support ActiveSync and thereby support push mail for the iPhone.

Lotus Notes Traveler was introduced with the Domino 8.0.1 release and is and now in release 8.5. Traveler is push mail for Lotus Domino and other solutions in the push mail area include Excitor with DME, Visto, Funambol, and of course Blackberry with their Enterprise Server product.

Documentation for Traveler 8.5 is available and the following presentation is a good introduction to the features of the Traveler 8.5 release:

My first Ruby On Rails project

Yesterday I heard a podcast from the Danish builder.dk site where the builder.dk team interviewed David Heinemeier Hansson who created Ruby On Rails. This inspired me to try out Ruby On Rails. I download the Ruby On Rails one-click installer and MySQL and then followed this guide to install everything.

After the installation I created my first (empty) project by issuing “rails testproject”. I could then start the web server from the testproject directory by issuing  the command “ruby script/server” – and test the result at http://127.0.0.1:3000/. Voila!

Now I just need to do some real Ruby On Rails coding. I plan to use Aptana as the IDE because it has the RadRails authoring environment.

Web services versioning

Consider a scenario where you have a web service that you expose to consumers – and you want to make changes to the provided web service interface. What can you change without impacting existing consumers? And how do you handle changes that do impact existing consumers? I work on a project where we have to find a solution to this scenario and my investigation of the issue lead to the following.

Based on a develeoperWorks article on Best practices for Web services versioning I have created the following list of backwards compatible changes. These changes can be implemented without any impact to existing consumers of your web service:

  • Adding new operations to your web service
  • Adding new XML schema types that are not contained within previously existing types
  • Adding optional elements or attributes to existing request messages

However, the following are non-backwards compatible changes and require changes to be implemented by existing consumers in order to be able to use the changes web service:

  • Removing an operation
  • Renaming an operation
  • Changing the parameters (in data type or order) of an operation
  • Changing the structure of a complex data type
  • Adding new required elements to existing messages
  • Adding new optional elements to existing response messages
  • Removing required elements

Web services versioning is required to deploy changes that impact existing consumers (unless you are able to force the consumers to use the changed web service). For backwards compatible changes the developerWorks article recommends that XML comments are used to indicate unique version IDs or a version history. For non-backwards compatible changes the article recommends the use of web services versioning based on XML namespaces that clearly identify the version of the web service:

<schema targetNamespace=”http://example.com/2009/02/15/webservice” xmlns=”http://www.w3.org/2000/10/XMLSchema”>

An article on Design Strategies for Web Services Versioning from SOA World Magazine recommends to enhance versioning by using a hybrid solution that combines XML namespaces and version ids where the targetNamespace is used for non-backwards compatible changes while the version id is used for backwards compatible changes:

<schema targetNamespace=”http://example.com/2009/02/15/webservice” version=”1.1″ xmlns=”http://www.w3.org/2000/10/XMLSchema”>

For my particular project I find the combination of namespaces and version ids to be the most useful solution as the project will introduce both backwards and non-backwards compatible changes. It will be interesting to see how this will work in practice.

Update February 16: I have clarified that adding new elements to the response message will break existing web service consumers.

Lotusphere 2009 Comes to You – Denmark included

The Lotusphere Comes to You program has been announced so if you did not attend Lotusphere 2009 then here is your chance to see and hear some of the highlights!

Ed Brill will be visiting Denmark on March 17 in Århus and on March 18 in Copenhagen. Furthermore Ed will participate in a user group event with the Danish notesnet.dk community on March 17.

Blog migrated from Blogger to WordPress

I have finally migrated from using Blogger as my blog engine to using WordPress. I used Blogger to edit and publish my posts which were then published on my self-hosted domain at per.lausten.dk via FTP. However, Blogger did not provide all the features that WordPress offers – I therefore decided to migrate to WordPress.

My blog runs on Windows Server 2003 with IIS 6.0. I followed a guide by Jason Boche with some modifications in order to be able to import my blog posts from Blogger to WordPress:

  1. I installed MySQL 5.1.30 and MySQL GUI Tools 5.0.R15 and created my WordPress database
  2. I installed openSSL Light 0.9.8j (needed for WordPress to import from Blogger – see below)
  3. I installed PHP 5.2.8 and selected the IIS ISAPI module and added the MySQL, MySQLi and openSSL extensions during the installation
  4. I changed the NTFS permissions, installed WordPress 2.7 and added index.php to the list of default content pages in IIS

WordPress can import blog posts from Blogger – but only from blogspot hosted blogs. Since I used the FTP option to publish my posts on my own domain I had to switch from FTP to BlogSpot (via Publishing Settings) in order to allow WordPress to import. Furthermore, WordPress required openSSL to be installed and added as extension in PHP. I was then able to import all my 166 blog posts and the related 106 comments (and I could then delete the Blogger created HTML files from my site).

Using Blogger to publish posts via FTP creates a HTML file for each post and these post permalinks are already in the search engine indexes. So I was interested in maintaining the permalink structure of /year/month/post-name.html. To achieve this I used the WordPress plugin “Maintain Blogger Permalinks” that updates the permalink to match the Blogger permalink structure. Furthermore, IIS has to be setup to use a custom 404 header in order to redirect incoming request for the .html permalink to the matching post in WordPress.

My blog was then migrated and I have now started to explore the many possibilities of WordPress such as themes and plugins.

Webcast: Using Rational Team Concert in a Globally Distributed Team

Erich Gamma from the Rational Jazz team has just recorded and posted a 60 minute webcast on the subject of using Rational Team Concert in a globally distributed team. Erich covers topics such as server setup, release planning, iteration planning and finishing a release.

Have a look if you are interested in agile methods.

Lotus Notes 8.5 and Lotus Domino 8.5 are now available

Lotus Notes 8.5, Lotus Domino 8.5 and Lotus Enterprise Integrator 8.5 are now available for download on Passport Advantage.

Update January 7: Ed Brill has more on the 8.5 announcement – including the following presentation that introduced the 8.5 release:

Update January 17: It is now possible to download a 60 days trial version of Lotus Notes 8.5 on ibm.com.

Lotusphere 2009

Lotusphere 2009 kicks off in 2 weeks. The conference starts January 18 and ends on January 22. Ed Brill just shared in the LinkedIn Lotusphere group that the presentations are already online and available for all registered conference participants at Lotushpere 2009 Online.

Participants and speakers at the conference include many from the Lotus blogosphere. The Lotusphere blog has lots of interesting “Share your story” posts with some of these participants. So head over to the Lotusphere blog and read their stories.

As usual Ben Langhinrichs from Genii Software provides a Lotusphere agenda database with all the official sessions making it easy for you to plan your Lotusphere.

Unfortunately I am not going to Lotusphere 2009. Perhaps I wil see you at Lotusphere 2010! Enjoy the conference.

Follow a live Domino build project

Domino Guru Chris Toohey is currently busy with a project build with a deadline tomorrow (December 31st). Despite the tight deadline Chris is “live” blogging the build process for others to learn more about Domino development. I can highly recommend that you follow the project.

So far Chris has written an introduction to the project, his thoughts on the design for the build, and has decided on the technology to use for both the Lotus Notes client front-end and the web browser front-end.

From his tweets on twitter I can see that he is right now busy with some actual coding. So stay tuned for his next updates on the project.

Update December 31: Chris has posted a screencast showing the first coding steps.

Update January 3: Chris has posted episode 2 of the coding screen casts.