Notes In 9 XPages

If you still believe in IBM’s “Backward Compatibility” you’re nuts.

Yes that’s a shocking title.  I almost NEVER do that.  But I wanted to get your attention so sue me.

I’ve seen a couple of remarks here and there about XPages and poor “backward compatibility” like we’re used to having with the Notes Client.

First thing to know.  In the Web / XPages world “Backward compatibility” guarantees are a thing of the past.  They’re done.  Get over it.

Second thing, and this is very important.  This is NOT IBM’s fault at all.

(Ok, well maybe on rare occasion it’s 5% their fault because some things would be nice if they knew ahead of time – cough iOS and Dojo)

If you want to stay in the Notes client then yeah ok, you could probably expect good backward compatibility.  But if you go into XPages and stuff forget about it.  It’s not going to happen.  There’s just too many moving parts.  dojo, ckeditor, different web browsers, different operating systems.  This is not IBM’s fault.  This is just a different world then the closed box Notes Client.

Case in point today.  I got news that my file upload system stopped processing pictures from iPads running on 9.0.2.  Well crap that sounds bad and gives me flashbacks of the last XPages / iOS issue.

After a full team press on this we discovered the problem. Then Declan found this post.

In iOS 9.0.2 if you upload from the iPad photo library the file type is “jpeg”.  This is a CHANGE from Apple.  Stupidly, if you upload direct from the camera the picture comes through as “jpg”.

So guess what idiot had this line of code :

if (this.smallType.equalsIgnoreCase(“JPG”)) {

yeah that would be me…

Changing it to :

if (this.smallType.equalsIgnoreCase(“JPG”)  || this.smallType.equalsIgnoreCase(“jpeg”)) {

Solved the immediate problem.

Now overall my code is not very robust.  It was a rush job originally and the amazing Devin Olson is currently doing the next version much better.

But we as developers need to learn how to test better. And we need to test more often.  And not just when a new version of Domino or a new version of the Ext. Library comes out.  But you need to test when mobile OS’s get updated.. desktop OS’s, etc…

And in addition to testing if you’re going to be running Web / XPages applications you MUST be able to stay on more current versions.  Everything else is changing around your app.  Your best chance really is ALWAYS run the latest and greatest. If your company isn’t willing to do that then they’re nuts! Gone are the days when you say “Works best with Internet Explorer 6”.

I do not know how to do automated testing.  There was  NotesIn9 #40 on Selenium  but I’m not sure that’s still valid.  I hear Selenium has problems if the id’s change as XPages is known to do.

If anyone has good testing strategies I’d sure be interested in hearing about it.