THANK YOU NOTES IN 9 !!!!!!!!!!!!!

Once upon a time there was a guy who worked for a trucking company and he decided that he needed to learn this new XPages thing – and he figured why not share what I am doing? That was over 7 years ago and it grew into the largest single video repository in the history of IBM Domino. Dave Leedy is coming to the end of his XPages-casting career and is hanging up his cleats in this arena. Not only did Notesin9 lead to more opportunities for Dave, it also helped many many other people.

Dave will not admit it, but http://www.Notesin9.com site has helped more people be successful that he could have ever imagined,

Dave and Notesin9 are a huge reason for my personal success in the last few years and I know I am not alone. Dave’s encouragement and the hosting costs he provided out of his own pocket provided a platform for my success unmatched in my professional career. I owe him a huge debt of thanks personally and many others do too.

So a few friends (44 people!!) and I got together and decided it would be cool to create something memorable that Dave could relate to and I really hope it gives you some idea of the love……

So today we are releasing the unofficial-official #thanksnotesin9 video. I hope you enjoy it. Share it, trend it, it’s worth it to everyone in the IBM Domino community.

I know there are many others who would like to contribute but we had to keep this on the quiet and had to be completed eventually. If you have a thanks video you want to make then link it in the comments below. The more the merrier 🙂

Cheers,

Marky

 

PS

make sure you watch it to the end 😉

XPages runtime in Bluemix goes Beta

On January 21st IBM announced that the XPages Runtime as entering the beta release phase. The announcement was posted on developerworks By Brian Gleeson – https://developer.ibm.com/bluemix/2016/01/21/announcing-beta-release-ibm-xpages-runtime/ This signifies a very important milestone in the process of becoming a fully fledged member of the Bluemix family of capabilities.

What does Beta mean?

Well first of all the runtime now appears on the main catalog and no longer hidden in the experimental section. You can find it in the main catalog under Runtimes and when you create a new application is part of the list of runtimes available.

b1

b2

Beta also means that there is an expectation of reliability within the cloud. Going through the Beta phase means that although IBM are not fully committed to their SLAs for delivery quite yet, they are basically expecting the runtime to perform as if it was. This means a more reliable availability, and more importantly, IBM cannot just “make changes and take stuff down” as they feel like it. Being experimental means that there is no guarantee of it even being there tomorrow.

Beta means that we can start to talk to customers about it as a real possibility. Once again, Beta means that IBM is expecting people to actually start to create prototype applications which can be used in real discussions for Application Modernization and migration scenarios.

Beta means that the end goal initial release is now much clearer. Going through the experimental phase we have seen a large number of improvements and changes to both the runtime and the OpenNTF Extension Library releases support the programmatic interaction with it. IBM’s intention is to support a hybrid model with the release of XPage in Bluemix. Currently, we do not know the future of the XPagesNoSQL service but that is still experimental.

IBM is pressing forward with the release of the runtime and the Hybrid model. For more information on this, check out another post by Brian on YoutTube (https://youtu.be/WsjQ4hjJ10E). The Hybrid model means the ability to run a trusted server in the Bluemix container and having it securely interact with your Domino server(s) back within the corporate environment. This means the data and authentication model does not leave the company, while the runtime can be used to take advantage of all the cloud foundry capabilities like fail-over, multi-instance deployments and much more.

Beta means that this is real people – most of the investment by the XPages development team, under the guidance of Pete Janzen has been in preparing XPages for Bluemix. This is a significant step in the product evolution. I fully expect that more information will be released in the App.Next presentation to be given at Connect 2016. Hopefully the expected deadline for the full release date will be shared.

More announcements coming soon

For those of you going to Connect make sure you check out the sessions on the XPages runtime and Bluemix

1529: IBM Domino App.Next – Broadening Your Horizons with Bluemix

1075: The XPages of Things: Integrate Bluemix with Your XPages Applications for a World of Possibilities

PSC is hiring: XPages Senior Architect/Developer position

PSC is hiring – we are looking to add to our existing team of 10 XPages developers. The ideal candidate will be able to work directly on client engagements and interface with sales, marketing and consulting managers internally. The position is a great opportunity to work with and help to grow the largest XPage consultancy team in North America.

Please apply online: http://www.psclistens.com/careers/open-positions/

Due to the nature of some of the work, candidates must be situated within the United States.

Job Details
XPages Senior Architect (000782)
Job Number:  000782
Job Title:  XPages Senior Architect
Number of Openings:  1
Country:  United States
State/Province:  Illinois
City:  Chicago/Schaumburg
Salary Interval:  Per Year
Job Schedule:  Full Time
Job Category:  Computers/Information Technology
Position Description
PSC Group is an Information Technology and Business consulting firm that helps companies withstand the challenge of change. We specialize in the development of solutions that help our clients achieve their strategic business objectives.

We offer Full-Time opportunities for people who thrive in both a challenging and rewarding environment. With our world class Five Points of Excellence program, we set the foundation for success for our consultants by providing a clear vision. Whether that is from the technical standpoint, the consulting side of the business, or on the management side, we help our consultants achieve their goals. If you want to be part of an exciting opportunity with a company that is both an IBM Premier Partner and a Microsoft Gold Partner, contact us!

We are working, not only with cutting-edge technologies, but with some of the brightest, most talented consultants as well.

Candidates will be familiar with the oversight and implementation of enterprise XPages application deployments.  The successful applicant will interface with PSC Solution Directors and Sales Directors to provide analysis, insight and estimates for upcoming projects. Candidates must demonstrate experience and a broad understanding of customer relationship management.

 

Candidates outside of the Chicago area will be considered, however must be located in the United States of America.

Position Requirements
Required Skills

  • Broad experience in architecting, developing and delivering solutions utilizing IBM XPages
  • Experience with XPages extension library
  • Strong web development skills and experience utilizing Javascript libraries, JSON and Ajax
  • Take part in the full lifecycle of software development including; analysis, design, development, testing, documentation, and implementation.
  • Ability to effectively communicate to both technical and non-technical individuals at all levels throughout the organization.
  • Strong attention to detail with a focus on quality of work
  • Strong written and verbal communication skills
  • Ability to work well in a team or independently

 

Desired Skills:

  • Strong knowledge of Java and Java Server Faces (JSF)
  • Knowledge of responsive design and Twitter Bootstrap
  • Proven track record of success in consulting engagements

 

Benefits:

  • Full-time salaried position commensurate with experience
  • Comprehensive Benefit package, including 401(k) match
  • Paid Vacation, Sick Time, and Holidays
  • Tuition Reimbursement
  • Opportunity to develop your career with our Five Points of Excellence Program
  • Company Dinner Meetings, Recreational Activities, and Rewards Programs
  • Billable Hours Bonus Program

 

XPages in Bluemix: Creating a searchable REST service

In this article I will demonstrate how we can set up a new searchable REST service in an Bluemix XPages environment.

Introduction

This article was driven by a question on Twitter from Paul Ramos (@parf82) who asked how to search a database in Bluemix. The answer is of course, in the same way that you search it not in Bluemix, using an FTSearch. The more pertinent questions is really how to make the XPages runtime find the application to search in the first place.

Creating the base application

If you follow this video by Brian Gleeson you will be able to create your first application in Bluemix. Once you have that you can manipulate the environment to your hearts content. There are multiple, documented, methods for updating your XPages environment in Bluemix, I prefer to create a Git repository. As Toby and I demonstrated in the socialbizug webcast you can download the application design, manipulate it and send it back to Bluemix as one.

Manipulating the boilerplate

I have the initial boilerplate code cloned to my local hard drive.

bl1

First step it to edit the Manifest and get rid of the Boilerplate application. Why, you ask? Well this way you have the manifest and everything else configured for you nicely. You can do this from scratch but I generally find this mentally easier to work through.

bl2

I renames the application from todo_design to xpages_design.

I took a design copy of my extjs database and saved it in the git repo folder. The database can be seen at (http://demo.xomino.com/xomino/extjs.nsf) which is at it’s heart just a modified fakenames.nsf database (http://www.xpagescheatsheet.com) from David Leedy.

The reason I chose this database is that it contains a lot of REST services already in a normal XPages environment.

bl6

I then had to create a copy of the database itself in the Bluemix NoSQL environment.

bl4

bl5

Quick review

We now have the database split into two separate pieces

  1. The data on slaney/bluemix
    1. https://xpages-domino.ng.bluemix.net//bluemix/PSC_Playground/Hybrid/extjs.nsf/ByName-First
  2. The design xpages_design.nsf – currently in my local git repo

Putting the data directly on slaney – very possible and works in a view as expected

bl7

But if we try and access an XPage – it doesn’t work – which is what we would expect.

Accessing the data from the XPages runtime

Back in our xpages_design database we are going to create a normal REST service – but we have to use the new BluemixContext object to find out the path for the service (https://www.ng.bluemix.net/docs/services/XPagesNoSQLDatabase/index.html#xpservice_portexisting).

 

				<xe:restService id="restService3" pathInfo="byFirstNameBlue">
					<xe:this.service>
						<xe:viewJsonService viewName="ByName-First" start="0" count="100" defaultColumns="true" databaseName="#{javascript:bluemixContext.isRunningOnBluemix()? bluemixContext.getDataService().getHost()+'!!' + bluemixContext.getDataService().getRootDir() + 'extjs.nsf' : 'extjs.nsf'}">
						</xe:viewJsonService>
					</xe:this.service>
				</xe:restService>

The bluemixContext values are derived from the VCAP_Services variables made available to the XPages in Bluemix service through Cloud Foundry. An example is shown here – it is available from the Bluemix dashboard for your XPages by clicking on the ^ arrow on your NoSQL database service.

t1

Viewing the result

Once we have pushed the REST service design changes back up to Bluemix we should be able to see them. Once we correctly create the URL to the rest service. In this case “xpages_design.nsf/xRestService.xsp/byFirstNameBlue”

http://xpages.mybluemix.net/xpages_design.nsf/xRestService.xsp/byFirstNameBlue

 

We are able to demonstrate the new searchable REST service by manually modifying the URL and adding search parameters:

http://xpages.mybluemix.net/xpages_design.nsf/xRestService.xsp/byFirstNameBlue?open&search=smith

 

 

Conclusion

In this article we have seen that we are still able to use the XPages out of the box rest service to communicate between the design database and the “data” database. All the out of the box functionality is available as if it were an on premises application. We also saw the usage of the new bluemixContext to find out where the data database resides within Bluemix.

 

 

How to easily hide an XPages CKEditor toolbar

Today’s random requirement was to be able to provide a Rich Text field without the user realizing that it was. The requirement derived from modernizing an existing application and the need to retain field type for notes client users more than web users.

So I did I quick google and did what every good developer did – stole the idea – in this case directly from Jesse

https://www.frostillic.us/f.nsf/posts/quick-and-dirty-ckeditor-toolbar-setup-for-xpages

I was able to hide the toolbar on the CKEditor by making a new toolbar which was completely empty.

<xp:inputRichText id="editor1">
	<xp:this.attrs>
        <xp:attr name="toolbar">
        	<xp:this.value><![CDATA[ [ ] ]]></xp:this.value>
        </xp:attr>
    	</xp:this.attrs>
</xp:inputRichText>

 

OneUI ? IE7? Seriously…………? Another one of *those* days…..

Working with a client and we are trying to insert some Bootstrap code into a OneUI site running on IE11 – everything was working smoothly until we actually tested in IE11. (Of course we developed using Chrome – well who wouldn’t….)

Compatibility Mode

So finding the root cause of the problem was simple – Compatibility Mode being run on the customer intranet – AAAAAAh yes that old chestnut – well we overcome that issue with a phaseListener as documented by Mark Hughes many years ago.

But that did not fix the layout issue – IE=edge was in the header and everything else looked just fine…..

Then I noticed this in the Page HTML….

ie7

but I look at the page source and I find this……no Class

<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN” “http://www.w3.org/TR/html4/loose.dtd”&gt;
<html lang=”en”>
<head>

Oh OneUI you old devil

So after some digging I found this included in the HTML

/domjava/xsp/theme/oneuiv2.1/js/ie7.js

and there, in the code……

/* Copyright IBM Corp. 2010, 2013  All Rights Reserved.              */

document.getElementsByTagName("html")[0].className+=" lotusui_ie lotusui_ie7";

OH MY……….so what is happening is that the Notes Server is detecting that the IE11 Compatiblity Mode browser is actually trying to behave as IE7. And it is adding an IE7 style sheet, as the page is loaded, overriding the theme’d OneUI CSS which is being added earlier up the HTML DOM (yay cascading stylesheets I guess…)

Easy fix.

Naturally we are using jQuery within the page so the classes can be easily removed with the following code at the end of the XPage

$(document).ready(function() {		
	//This is HACK CODE to remove the lotusui_ie7 class which is 
	//programmatically added to the page by OneUI after the page is loaded in IE7 compatibility mode
	$('html').attr('class', ' ');
});