Monday, 29 August 2016

Upcoming XPages Webinar: Take a Trip Into the Forest - A Java Primer on Maps, Trees, and Collections

On September 8th a very interesting webinar will be organized by T.L.C.C and Team Studio, Take a Trip Into the Forest - A Java Primer on Maps, Trees, and Collections by IBM Champion Howard Greenberg. The registration for this webinar is available on the T.L.C.C website.


Content
Wondering how to take advantage of Java and Managed Beans in XPages? To do this requires knowing how to store data in Java objects and a good understanding of Maps, Trees, Lists, and Sets. No, we are not talking about Google Maps or those big green things in forests but different Java interfaces!

Come learn from Howard Greenberg of TLCC as he discusses different programming models to use when storing application configuration information, speeding up lookups to Domino data and feeding data to repeat and table controls. Learn how to build reports from different data sources. Plus, Howard will also look at working with dates and numbers in Java and Domino. Finally, he will review the Domino Java APIs and an alternative, the OpenNTF Domino API.

See also the MWLUG 2016 Slides (AD112).



For more information: XPages Webinar Series with TLCC andTeamstudio

Missed a Webinar? Look here for the recorded webinars.
Below a recording of the webinar from June 16th , Building Responsive Applications Using XPages.




Click here to download the demodatabase.

Friday, 26 August 2016

The Actual Facts on the Future of IBM Notes Domino and XPages



The past week has been dominated about the future of IBM Notes and Domino in the Notes Domino and XPages Community. Some predict the end of IBM Notes after 2021, others advise to quickly migrate to another platform or at least run away from IBM Notes Domino. But let's not forget that IBM Notes Domino and XPages still exists and will be maintained for a long period of time. As I indicated in a previous blog post IBM Notes Domino and XPages is still a great product that many companies are still very pleased with daily.

What are the actual facts about the future of IBM Notes Domino after all that is written over the past week. During the past week there have been two comments from Ed Brill on some blog posts which provide some clarity about the plans and future regarding Notes Domino. The first comment relates to the support for IBM Notes Domino.

'To comment on the support point specifically, in the next few weeks we will announce formally that support for 9.0.x will be extended to 2021. It doesn't depend on a version update. And as you note, things originally expected in 9.0.2 are going to come in what are currently called fixpacks. I haven't decided what to call the update with Verse on Premises yet.'

This means that IBM will support IBM Notes Domino until 2021. That is very good and positive news. Furthermore, this means that there will be no IBM Notes Domino 9.0.2 release. The good news is that the new long-awaited 9.0.2 release will be replaced with something similar to the current known Fix Packs. Also very good and positive news.

The second comment relates Roadmap bullet about Application Modernization.

'I am commenting here and on Darren's blog and others today to try to convey that I'm listening. And I would like to be able to say more about what my roadmap bullet about app modernization means, but it is something we are still working on a few different paths, and it is not going fast enough and I want to do more before we talk about it... I recognize that the silence is leaving people to their own interpretation and as a result I will likely miss the expectations. That's not what I am shooting for of course but I want to acknowledge the tone and frustration I hear.'

IBM is listening and will not 'kill' products. The openness in the comments is greatly appreciated. Although it needs seemingly more time than expected there remains hope regarding application modernization. Also very good an positive news.

As I mentioned before there will be an official announcement by IBM in September 2016 with an update to the lifecycle policy for IBM Notes and Domino 9.0.x. So let's wait for the announcement and let us reassess and discuss again afterwards.
I am convinced that IBM remains committed to Notes and Domino. Recently IBM has released additional functionality, including IBM Client Application Access and IBM mail support for Microsoft Outlook. IBM will release IBM Verse On-Premises later this year.
So be positive and believe in the future!

Tuesday, 23 August 2016

IBM Notes Domino And XPages Strikes Back

There has recently been a lot synisme, criticism and negativity about Notes Domino and XPages. If you believe the latest tweets and blog post it seems as if Notes Domino and XPages as an application platform is depreciated by the community and everyone is looking for alternatives.
I think Notes Domino and XPages is still a great product that many companies are still very pleased with daily. From the daily practice it always turns out over and over again, among others, how simple applications can be extended with new functionalities, how great the replication functionality is and how quick and simple web applications can be developed and can be brought to the cloud. I can elaborate on all the strengths and positives of IBM Notes Domino and XPages but that is not the main purpose of this blog post.

And of course it's true that we are still waiting for new version for Notes and Domino XPages. The next release of Notes Domino will not be the long-awaited Notes Domino 9.0.2 release but the Notes Domino 9.0.1 Fix Pack 7 release, which is scheduled for September.


But it is time to focus on the positive news. There will be an official announcement by IBM in September 2016 with an update to the lifecycle policy for IBM Notes and Domino 9.0.x. So maybe there will be an announcement for the long-awaited release of Notes Domino 9.0.2.
IBM remains committed to Notes and Domino and has recently released additional functionality, including IBM Client Application Access and IBM mail support for Microsoft Outlook.  IBM also plans to release IBM Verse On-Premises later this year.

So let's wait for the announcement by IBM regarding the lifecycle policy for IBM Notes and Domino 9.0.x. and let us reassess and judge again afterwards.
I am convinced that Notes Domino and XPages will have a great future and most of the customers will stay with these IBM products. New technologies will hereby be adopted but the core will remain Notes Domino and XPages.
Long live IBM Notes Domino and XPages !

Wednesday, 17 August 2016

IBM Traveler 9.0.1.13 Server available for download on IBM Fix Central

IBM Traveler 9.0.1.13 server is now available for download at this Fix Central link. A full installation package will be available on Passport Advantage by August 25th. This release does not include a database schema update.  See below for the list of APAR fixes included in this release and additional related links.
IBM Traveler 9.0.1.13 is a maintenance release that provides APAR fixes for IBM Traveler server.

The information below outlines the changes included.
IBM Traveler 9.0.1.13 includes all APAR fixes delivered in all previous releases up to and including IBM Traveler 9.0.1.12 in addition to the APARs listed here.
Note: IBM Traveler 9.0.1.13 does not include a database schema update. However if updating from a version prior to 9.0.1.11 there will be a schema update. Action may be required if you manually manage your database schema (this is not common). If you use auto schema updates (default behavior) there is no action required. See Updating the Enterprise Database for more information.


For more information: Traveler 9.0.1.13 Server Release Notes
Download IBM Fix Central: Windows / Linux

Quick XPages Tip: Using Bootstrap Auto-Hiding Navbar in XPages

Last week I received the question whether it was possible to hide the navigation bar automaticly in an XPage application using Bootstrap when a user scrolls down on a page. In some cases it is convenient to hide the top navigation bar. For this, there is a simple solution, the Bootstrap Auto-Hiding Navbar plugin.
The only thing that is needed to hide the navigation bar automaticly is to include the source javascript file from the Bootstrap Auto-Hiding Navbar plugin, <script type="text/javascript" src="hidingnavbar/jquery.bootstrap-autohidingnavbar.js"></script>. Next it can be initialized with the following code: <script>$("div.navbar-fixed-top").autoHidingNavbar();</script>.
The Bootstrap Auto-Hiding Navbar plugin can be downloaded on GitHub.
Bootstrap Auto-Hiding Navbar is an extension for Bootstrap's fixed navbar which hides the navbar while the page is scrolling downwards and shows it the other way. The plugin is able to show/hide the navbar programmatically as well.

Initialization parameters object
When calling $(".navbar-fixed-top").autoHidingNavbar() you can pass a parameters object with zero or more of the following:

  • disableAutohide, defaults to false, set this to true if you want to show/hide the navbar programmatically.
  • showOnUpscroll, defaults to 'true', the navbar shows up when scrolling the page upwards (otherwise it shows only when scroll is on page's top).
  • showOnBottom, defaults to 'true', the navbar shows up when scroll reaches the page's end.
  • hideOffset, defaults to 'auto', hides the navbar after scrolling that much pixel. Auto means the navbar's height.
  • animationDuration, defaults to '200', is the duration of the show and hide animations in milliseconds.
  • navbarOffset, defaults to '0', the navbar doesn't hide that many pixels from the bottom.

Methods
There are also some methods available that can be called with the following syntax:
$('.navbar-fixed').autoHidingNavbar('setDisableAutohide', true);
$('.navbar-fixed').autoHidingNavbar('hide');

  • setDisableAutohide(value) to change the disableAutohide parameter.
  • setShowOnUpscroll(value) to change the showOnUpscroll parameter.
  • setShowOnBottom(value) to change the showOnBottom parameter.
  • setHideOffset(value) to change the hideOffset parameter.
  • setAnimationDuration(value) to change the animationDuration parameter.
  • show() to show the navbar programmatically.
  • hide() to hide the navbar programmatically.
  • destroy() destroys the plugin instance.

Sample Codes XPage
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core"
xmlns:xc="http://www.ibm.com/xsp/custom">
<script type="text/javascript" src="hidingnavbar/jquery.bootstrap-autohidingnavbar.js"></script>
<xc:ccLayoutBootstrap><xp:this.facets>
<xp:panel xp:key="facetMiddle">
<xp:br></xp:br>
</xp:panel>
</xp:this.facets>
</xc:ccLayoutBootstrap>
<script>$('div.navbar-fixed-top').autoHidingNavbar();</script>
</xp:view>

Sample Code XPage with some parameters
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core"
xmlns:xc="http://www.ibm.com/xsp/custom">
<script type="text/javascript" src="hidingnavbar/jquery.bootstrap-autohidingnavbar.js">
</script>
<xc:ccLayoutBootstrap><xp:this.facets>
<xp:panel xp:key="facetMiddle">
</xp:panel>
</xp:this.facets>
</xc:ccLayoutBootstrap>
<script>$("div.navbar-fixed-top").autoHidingNavbar({
showOnUpscroll: false,
showOnBottom: false
});
</script>
</xp:view>

Friday, 5 August 2016

Welcome to Watson Analytics: Lets get started!!

I am starting with IBM Watson on IBM Bluemix to bring the power of cognitive computing to my applications. The video below is one of my starting points and gives a good impression what the possibilities of IBM Watson are.
IBM Watson is a cognitive system enabling a new partnership between people and computers.
Watson is the first commercially available cognitive computing capability, representing a new era in computing. Watson analyzes high volumes of data and processes information more like a human than a computer—by understanding natural language, generating hypotheses based on evidence, and learning as it goes.

What Watson can do for you:
- Answer your customers' most pressing questions
- Quickly extract key information from all documents
- Reveal insights, patterns and relationships across data

Take a quick tour in this video and see how quickly you can get started analyzing your data.



More blog post will follow in the near future about IBM Watson.

Thursday, 4 August 2016

Using Bootstrap Touchspin a Mobile and Touch Friendly Input Spinner Component for Bootstrap 3 in XPages

After some time a new blog post on Bootstrap Plugins in XPages. In this blog post I will show how to use Bootstrap Touchspin, a mobile and touch friendly input spinner component for Bootstrap 3, in XPages. Bootstrap Touchspin supports the mousewheel and the up/down keys. A nice addition to any XPages Application. Bootstrap Touchspin is very easy to implement using the jQuery Selector for XPages. Bootsrap Touchspin can be downloaded on GitHub. Below a description of the setup in XPages of the Bootstrap Touchspin Plugin.


1. Adding the JS and CSS files
The JavaScript and CSS files must be added to the WebContent Folder in the Package Explorer.
In this example a Folder 'touchspin' has been added in the WebContent Folder.
Next the JavaScript and CSS files, jquery.bootstrap-touchspin.js and jquery.bootstrap-touchspin.css, must be included on the XPage or Custom Control. In this example I add the files to an XPage. There is no AMD Fix necessary for this Bootstrap Plugin.

<script type="text/javascript" src="touchspin/jquery.bootstrap-touchspin.js"></script>
<link rel="stylesheet" href="touchspin/jquery.bootstrap-touchspin.css" type="text/css" />

2. Adding the x$ jQuery selector for XPages
Furthermore for this Bootstrap Plugin to work in XPages I use the the great XSnippet by Mark Roden, x$ jQuery selector for XPages, to initialize the plugin and include it on the Custom Control / XPage. The XSnippet can be added to the Script Libraries.

<xp:this.resources>
<xp:script src="/JQueryXSnippet.js" clientSide="true"></xp:script>
</xp:this.resources>

The script itself can be made up as follows. The name of the id in the script must correspond with the id of the Edit Box. In the example below I use some setting for the Bootstrap Plugin.

<xp:scriptBlock id="scriptBlock1">
<xp:this.value><![CDATA[
$(document).ready(
function() {
x$( "#{id:inputText1}" ).TouchSpin({
min: 0,
max: 100,
step: 0.1,
decimals: 2,
boostat: 5,
maxboostedstep: 10,
postfix: '%'
});
});
]]></xp:this.value> 
</xp:scriptBlock>

3. Setup Edit Box
The data-api will automatically theme the Edit Box with the class 'TouchSpin'. In this example I add an attribute 'value''to the Edit Box. It is also possible to use the attribute 'initval' which is applied when no explicit value is set on the input with the 'value' attribute. An empty string as ínitval' means that the value remains empty on initialization of the Plugin.

<xp:inputText id="inputText1">
<xp:this.attrs>
<xp:attr name="value" value="55"></xp:attr>
</xp:this.attrs>
</xp:inputText>

Final result is a nice responsive touch friendly input spinner component for Bootstrap 3.


Sample Code XPage
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core"
xmlns:xc="http://www.ibm.com/xsp/custom">
<xp:this.resources>
<xp:script src="/JQueryXSnippet.js" clientSide="true"></xp:script>
</xp:this.resources>
<script type="text/javascript" src="touchspin/jquery.bootstrap-touchspin.js"></script>
<link rel="stylesheet" href="touchspin/jquery.bootstrap-touchspin.css" type="text/css" />
<xp:scriptBlock id="scriptBlock1">
<xp:this.value><![CDATA[
$(document).ready(
function() {
x$( "#{id:inputText1}" ).TouchSpin({
min: 0,
max: 100,
step: 0.1,
decimals: 2,
boostat: 5,
maxboostedstep: 10,
postfix: '%'
});
});
]]></xp:this.value> 
</xp:scriptBlock>
<xp:scriptBlock id="scriptBlock2">
<xp:this.value><![CDATA[
$(document).ready(
function() {
x$( "#{id:inputText2}" ).TouchSpin({
min: -1000000000,
max: 1000000000,
stepinterval: 50,
maxboostedstep: 10000000,
prefix: '$'
});
});
]]></xp:this.value> 
</xp:scriptBlock>
<xc:ccLayoutBootstrap>
<xp:this.facets>
<xp:panel xp:key="facetMiddle">
<xp:br></xp:br>
<div class="page-header">
<h2>Bootstrap Touchspin</h2>
<h4>A mobile and touch friendly input spinner component for Bootstrap 3. It supports the mousewheel and the up/down keys.</h4>
</div>
<xp:br></xp:br>
<xp:inputText id="inputText1">
<xp:this.attrs>
<xp:attr name="value" value="55"></xp:attr>
</xp:this.attrs>
</xp:inputText>
<xp:br></xp:br>
<xp:inputText id="inputText2">
<xp:this.attrs>
<xp:attr name="value" value="50"></xp:attr>
</xp:this.attrs></xp:inputText>
<xp:br></xp:br>
</xp:panel>
</xp:this.facets>
</xc:ccLayoutBootstrap>
</xp:view>

For more information about the available Bootstrap Touchspin Settings and Events you can visit the Bootstrap Touchspin website.