Use the XPages Social Enabler to access StackOverflow and Redmine

Niklas Heidloff | 6:23:32 AM Tuesday, May 15, 2012 | Comments

I've just contributed two snippets that show how to access StackOverflow and Redmine. In both cases you need the com.ibm.xsp.extlibx.sbt plugin from the extension library, but you don't need to deploy the web security store database.

There is an API sbt.GenericService that you can use to access both Json or XML based REST services. Additionally there are convenience APIs sbt.XmlNavigator and sbt.JsonNavigator to easily parse the data.

This snippet shows how to access issues from Redmine.



Additionally the social enabler comes with the data sources restJsonData and restXmlData. The advantage of these data sources is that you get built in functionality like caching. For StackOverflow this was important since StackOverflow didn't like the amount of requests issued from XPages.info.

The following snippet shows how to read the latest xpages tagged questions from StackOverflow. It also uses a busy indicator that is shown while reading the data.



Display XPages in IBM Connections in Full Page Mode - iFrame Fun

Niklas Heidloff | 6:11:50 AM Thursday, May 10, 2012 | Comments

Yesterday I described how to bring up XPages in IBM Connections in fullpage mode. However this solved only half of the problem. Since XPages are embedded in iFrames there is some more work necessary so that the iFrames are resized when the sizes of the browser windows change.

Watch this short video to see what I'd like to achieve from a user experience perspective.

Essentially the iFrame with the XPage should always take up the maximal real estate. The width of the iFrame should be set to 100% in the widget.xml. However when the height of the iFrame is set to 100% it doesn't work. One reason is that XPages can change their heights, for example when the browser window width is changed. Another reason is a timing issue. In order to show the XPage an HTTP post is done which takes a moment. When the parent sets the iFrame height initially it doesn't know the initial height of the XPage.

In order to solve this I used the HTML5 window.postMessage functionality which allows communication from the embedded iFrame to the parent even if the two pages are not located on the same domain. I've submitted the snippets to XSnippets. I'd like to add some more samples and add everything then to the XPages for Connections project.



Display XPages in IBM Connections in Full Page Mode

Niklas Heidloff | 7:19:55 AM Wednesday, May 9, 2012 | Comments

I've worked recently on integrating some XPages into IBM Connections. Last year I created a project on OpenNTF that shows how to do this. Essentially the XPages need to be wrapped in iWidgets (xml files) so that they can be added to the users' home pages and the profiles and community pages.

When I did this again now I figured a problem when displaying the XPages in full page mode. Below is a workaround for how to get it working.

Just to give you some more context: On the community overview pages widgets are displayed in "view" mode with less real estate.



When you click on an entry in the left navigator the pages are opened in "fullpage" mode.



In order to make this work you need to define your own iWidget xml descriptor. The version generated by Designer does not add the full page mode. Here is a snippet of an iWidget descriptor with both modes.



In order for the XPages runtime to understand the fullpage mode you need to add three lines of code in domjs/dojo-1.4.3/ibm/xsp/widget/layout/xspScopeClass.js.



Update:
Please read this to learn how to resize the iFrame with the XPage automatically when browser window sizes change.


How to use Worklight with XPages

Niklas Heidloff | 6:41:31 AM Wednesday, April 25, 2012 | Comments

In my last blog entry I mentioned that I want to publish instructions for how to use XPages in Worklight.

"It is currently not supported to point the Worklight app against a remote web server, e.g. an XPage. However this is important so that XPages developers can continue to use Domino Designer and  the XPages mobile controls to build the web parts of their apps. The Worklight team is aware of this requirement. I spent some time to figure out what changes need to be done to the Worklight app to make this work (at least for simple scenarios) so that XPages developers can start playing with Worklight. I've created a video with instructions that I'd like to publish soon."

So here is the video. Again, please note that this is not a supported configuration at this point and I don't have answers regarding licensing yet.



Why XPages Developers should know Worklight when building Mobile Apps

Niklas Heidloff | 12:37:34 PM Thursday, April 19, 2012 | Comments

At the beginning of this year IBM acquired Worklight, a mobile application platform to build, deploy and manage HTML based mobile apps, hybrid apps and native apps.

There is plenty of documentation describing Worklight, e.g. this deck for a quick overview.



There is also a YouTube channel with several good videos, e.g. "WorkLight Overview", "Native, Web or Hybrid Mobile Apps?" and "Using PhoneGap and Worklight for Mobile App Development in the Enterprise". Additionally there are more videos on Worklight.com as well as product documentation.

The general concept of Worklight is to build as much functionality of mobile apps as possible with standard web technologies. Only if web technologies cannot be used native code is used in hybrid apps. I think this brings together the best of both worlds. The same general idea is used by the open source framework PhoneGap. Worklight comes with PhoneGap but extends it by providing more functionality like push notifications, encrypted storage, manageability, etc.

At this point Worklight requires developers to put all web resources (the one HTML file plus JS files, css, etc.) in the native/hybrid app. These web applications can then talk to server backends using an adapter framework. So this configuration can be used by Domino developers who want to access data from NSFs using the Domino REST APIs.

It is currently not supported to point the Worklight app against a remote web server, e.g. an XPage. However this is important so that XPages developers can continue to use Domino Designer and  the XPages mobile controls to build the web parts of their apps. The Worklight team is aware of this requirement. I spent some time to figure out what changes need to be done to the Worklight app to make this work (at least for simple scenarios) so that XPages developers can start playing with Worklight. I've created a video with instructions that I'd like to publish as soon as some more people will have reviewed it.

This will open up great capabilities for XPages developers:
- Mix and match of native and web pages
- Invocations of native code from web apps
- Push notifications
- Offline access
- Encrpyted cache
- PhoneGap out of the box APIs as well as PhoneGap plugins
- Common controls


2012 Technology Trends from the IBM WebSphere CTO

Niklas Heidloff | 6:35:09 AM Friday, April 13, 2012 | Comments

Jerry Cuomo is an IBM Fellow and the WebSphere Chief Technology Officer. I watched the other day a great presentation from him about technology trends for 2012. Fortunately he's published a lot of this presentation on DeveloperWorks and Facebook so that I can share this.

Jerry gives an overview of the top 10 trends for 2012 as he sees them in his blog. From there he links to different Facebook pages for details and to allow interaction. There is also a complete paper based version.

The reason I blog about it is because some of his trends are closely related to what I'm working on.

For example one of his trends is Social Business. I won't repeat everything Jerry writes here, but just the fact that it's on his list shows the importance of social business for IBM overall.

One area I worked on some time ago and would like to work on more again is Mobile which is another one of Jerry's top 10 trends. Jerry talks about an IBM Mobile platform for both mobile web apps and native apps: "While we aspire to provide a development experience of write-once, run on many devices, using open web technologies, like HTML5 and JavaScript, we also know we must provide value for customers writing native applications as well. Hence our Mobile Technology includes an IBM component that installs on the mobile device, providing a growing number of value-added capabilities." In this context I've spent some time recently to learn Worklight. Expect some blog entries about this soon.

Another app dev related trend is Business API Management. I blogged about this some time ago. From Jerry: "This trend is about harnessing Web APIs to grow your business. As the web expands beyond just the browser to mobile phones and connected devices (like your next car, for example!) there is a need for solutions that can help your businesses cope with this exponentially increasing demand for services and data on the web."


Why Dojo? Why PhoneGap?

Niklas Heidloff | 7:27:41 AM Tuesday, March 20, 2012 | Comments

Several people have asked me why IBM uses the Dojo Toolkit as the client side JavaScript library and not other, maybe more popular, frameworks like jQuery. My colleague Chris Mitchell explains this very well in this short video. Essentially Dojo is focussed on enterprise applications as opposed to consumer facing web sites. The Dojo toolkit is a big package of different pieces of functionality which are treated as a whole with a common versioning, licensing and testing. It also provides functionality like accessibility and globalization.



There are some more videos on DeveloperWorks about mobile topics. For example in this video Chris provides an overview of the Web2.0 & Mobile Feature Pack.

Another question people ask me is why IBM invests into PhoneGap. My colleague Bryce Curtis explains this and the IBM engagement in PhoneGap in this video (starting at 12:10 min). PhoneGap allows building hybrid mobile apps using the web application development model. As opposed to other mobile frameworks it supports all standard techniques (HTML, JavaScript, CSS, etc.) and not only JavaScript APIs paired with proprietary UI models.



Images and Demos of ICS Products including Domino 8.5.3.1 and Connections 3.0.1

Niklas Heidloff | 1:21:32 PM Tuesday, March 13, 2012 | Comments

In case you missed the announcement yesterday. There is a new a new community, and an accompanying set of integrated product demonstrations, designed specifically for IBM business partners.  

IBM Business partners can download these pre-configured and ready-to-show demonstrations:
-  IBM WebSphere Portal
-  IBM Connections
-  IBM Sametime
-  IBM Quickr
-  IBM Domino
-  IBM Traveler
-  IBM Forms
-  IBM Web Content Management

To get started, visit the partner Demo Community @ http://bit.ly/ICSDemos.



Importance of Web APIs and how to consume these APIs in XPages

Niklas Heidloff | 9:38:08 AM Monday, March 12, 2012 | Comments

Recently I've read some interesting articles about Web APIs and how they open up new business opportunities. The resources below explain this much better than I can, but in summary the web has become more than surfing to pages via browsers. Instead web APIs often cause more traffic to sites than direct page visits.

An example is Twitter. Twitter gets 10 times more traffic through APIs than the website. Another example is Amazon who also get more traffic through their web services than the website.

programmableweb has among other things a directory of web APIs. The growth of web APIs is amazing. As of today they list 5339 APIs.

I like how Sam Ramji describes this new era in this great video:



I started to read two blogs where you can find a lot of more details about this topic. The apigee blog has not only great articles but also several webinars/videos. The other blog is the programmableweb blog.

In order to consume these web APIs in XPages you can use the Social Enabler which comes with the extension library. There is a video showing the social enabler in action.



IBM Business Partner IT works unlimited uses XPages Mobile Controls

Niklas Heidloff | 8:19:02 AM Monday, March 5, 2012 | Comments

Recently I visited the IBM business partner IT works unlimited. They use the XPages Mobile Controls from OpenNTF for some of their projects.

One reference is the customer KG Deutsche Gasrußwerke. Read the success story.

IT works unlimited told me that the apps have been developed with the older version of the mobile controls from OpenNTF since the projects started before the newer version of the mobile controls in the extension library became available but they thought that the new version would have made it even easier for them.

Additionally they have built a free app for iOS which can be downloaded from the Apple app store. This launcher app allows storing the Domino password locally (AES256 encrypted) so that users don't have to log in for every mobile Domino app and iNotes.

.


Niklas Heidloff

I'm a software architect working for IBM on application development.
At this point I work on community related topics OpenNTF.org and XPages.info.

Favorite Websites

Site Hosting

Disclaimer

This blog reflects the views of Niklas Heidloff. It does not necessarily represent the views, positions, strategies, or opinions of IBM.