Best ConnectED ever !!!

All one of it, and it was the best!!

Well OK seriously, it was also the best Connect-o-sphere I have been to in all my 4 years.

  1. Above all else I had an excellent time hanging out with and speaking with the most excellent Mark Leusink. It is kinda hard to coordinate a presentation when you only have 48 hours to prepare together, Mark made it very easy. When people like Mark Myers (who I have an inordinate amount of respect for) say things like this about you, it is very hard not to blush.
  2. I stopped hearing “Java is the way to go, if you are not using Java then you are doing it wrong”. What I started to hear was “you need to use the right tool for the right job and Java is not always the right tool”. The transformation is stunning, the eyes are open, the possibilities are boundless. I also think I shocked a few people by accepting and encouraging that their is a very good place for Java as well ! Collaboration, whodda thunk it.
  3. I cannot wait for Bluemix to enable me never use the Domino HTTP engine again. Well OK not quite…..but the possibility of writing an application on a node.js server to use Domino as my NoSQL data source makes me all gushy inside. Many questions remain and I will get into that in future posts, but ooooh the possibilities.
  4. Almost every vendor I spoke to had their best year in ages – primarily due to the large number of technical people in attendance I guess, but there was a sense of optimism which was severely lacking after last year.
  5. I have a new respect for Rene Winklemeyer and Theo Heselmans. Two excellent guys I really didn’t know so well before – they were entertaining, educational and exceptionally engaging speakers.
  6. There are a number of people who have intentionally (or not) made my community participation possible and Susan Bulloch is one of them – I will *always* be grateful for the opportunity to speak in Orlando and she gave that to me. (yeah I cried too 😦 )
  7. Multiple attendees stopped me in the corridor and said *thank you* for the Angular presentation. The main reason was because it makes more sense to them than going XPages. Serves to remind me that when this is all over I want to be a teacher…..
  8. I went to more sessions this year than any other – I also missed more sessions due to conflicts than any other – this is a GOOD THING because more choice means a better conference and more attendees.

Thank you to everyone who sang Happy Birthday in the middle of the Dolphin bar – I am humbled 🙂 Thank you to @woowar who invited me to the Penumbra social so that I could have a glass of Champagne on my birthday – very classy. Thanks to Darren Duke for paying for it 😉 Thank you everyone who attended the session(s). That’s well over 150 people, and only one guy walked out before they were finished – very flattering. Thank you to Andrew Barickman and PSC who gave me the opportunity to attend. Thank you to everyone who stopped me and said hi – love meeting people and sharing stories. Thank you to the bouncer for my presentation with Mark Leusink who encouraged people to come back for the second session – we had a full room the second time and it would not have happened without him. Thank you to Mac Guidera who let me speedgeek, gotta tell you by the end of it I was sick of the sound of my own voice !

Thank you to everyone I met – I have no idea when we will meet again, but I know we will talk soon 🙂


BTE 102: The Future of Web Development Write Once, Run Everywhere with AngularJS and Domino

Mark Leusink and I are very excited to be presenting a session at ConnectED this coming January. This is a great opportunity to come and find out about something a little different from the normal XPages run of the mill development. Mark and I will provide an introduction to the concepts and structure behind Angular.js, and then demonstrate how to build a very simple yet useful application using Angular.js and a Domino data store.

We are also going to blow some minds by showing the same application running on non-Domino platforms. If architected correctly, this transformation can be made with almost no code refactoring at all.

Come and see us in Orlando !

Marky, Mark


Track: Beyond the Everyday


AngularJS is currently the most popular JavaScript MVC framework. It’s driving more adoption and interest in the MVC/ REST API application architecture model. The ease of use, portability and re-usability of the code makes it an ideal solution for modern web developer needs. We’ll show you how to use AngularJS to modernize your existing Domino apps, while leveraging Domino’s best features. The speakers will also demonstrate how the power of architecting a solution based on AngularJS allows your Domino application to be made available through other platform interfaces. Taking “Write once, run everywhere” in the literal sense, you will see the same Angular/ Domino based app running natively in XPages, IBM Connections, Bluemix, IBM Worklight and more. Client-side JavaScript frameworks such as AngularJS are the future of web development – come and see it in action. 

Looking forward to IBM ConnectED – AD201: IBM Domino Applications in Bluemix

The session preview tool for ConnectED 2015 has been announced.

Looking through it I found the following abstract – which unsurprisingly has me really excited !!!

AD201: IBM Domino Applications in Bluemix

This session will show how Bluemix enables you to deploy Domino applications to the cloud in a matter of minutes. We will demonstrate how to leverage Bluemix buildpacks like XPages and Node.js both to modernize Domino applications and to give them a new home on a highly scalable and resilient PaaS. You will learn how to mix and match Bluemix runtimes and services to create Domino cloud apps rapidly, stage them privately and put them into production. You’ll see how to use cutting edge tooling to monitor and manage your apps. This is the future.

Presented by the XPages boys themselves – Martin Donnelly and Tony McGuckin

From Martin on Twitter –  “@MarkyRoden: it will be both me and @tonymcguckin presenting. Glad it’s caught your interest – should be lots of new stuff to see here :-)”

This is what I have been hoping for since it was announced that IBM were “investigating it” at MWLUG back in August 2014.

XPages buildpacks, mix and match run times – I might just be in developer heaven if this is as good as it sounds !!!

Save me a front seat I will be there !!!!

My thoughts on Connect 14 – What makes a good presentation?

I wanted to write down some thoughts and ideas, notes almost, after watching the IBM Connect 2014 technical presentations.

Ultimately what I want to understand and be able to execute myself is – What makes a good presenter/presentation?

Let’s ignore the content for the moment. Last week I attended sessions where I was interested in the content but the delivery was poor. I also went to presentations where the content didn’t interest me but the presentation kept my attention. Figuring out how to do a good presentation is very important to me. I would love to get feedback (comments below) on what other people think as I want to learn and I expect others do to.

This is a necessary life skill as a consultant /project lead – you need to be able to capture the attention of your audience even if they do not believe they are necessarily interested in what you have to say.

So what makes a bad presentation?

This is much easier to answer and the opposite is not necessarily true.

  • Reading from the slides
    • Absolute #1 presenter sin in my book. It shows a lack of belief/knowledge in what you are talking about. It is very boring to watch you read from a slide when I can do it myself. It demonstrates very quickly there is no point in me being here as I can get the slides later.
  • Too much code on the screen
    • see above
  • Spending too long explaining abstract concepts in a technical manner
    • On the one hand if this is a technical session, I understand, but if lose your audience at any time during your 10 minute rant about how awesome your code is, they are lost and you have failed.
    • see above
  • A bad abstract
    • Too often an unintentional bait and switch can really hurt a presenter. If your abstract claims that you are going to speak about jQuery then don’t spend 10 minutes bashing Dojo. Stick to the topic. Ensure that you talk to your abstract and don’t include large, previously declared, sections out of the blue; surprising attendees.
    • Many “non-Best Practices” sessions at Connect have abstracts that are vague and non-committal on the subject matter. What this then means is that attendees come to the session expecting one thing and don’t get it. Bad score – regardless of content if it is not why the attendee came you get a bad grade, people walk out, general feeling in the room is lower, bad scores.
  • No demonstrations
    • What do we all enjoy most about the OGS – demos
    • What do we hate most about the OGS – no demos
    • It applies to all of us as well
  • Don’t insult your audience
    • There is no point in going through something which has been discussed frequently on blogs – one slide – go read these links later, is all you need. We are here to learn about new things and be excited – don’t bore us with things we either know or can be looked up easily. (see know your audience and bad abstract)
    • Explaining to me how you make a REST Service work is not necessary when your talk is about something which consumes the REST service – tell me more about the something advertised and tell me where to go to find out more about REST services.

So what makes a good presentation?

  • Structure
    • Everything you create must have a start, a middle and an end. Presentations are no exception.
    • Use slides to break up the flow based on the agenda. This was one of the best things about the template slide decks for this connect14 – purposeful section slides.
    • There is no reason why you cannot break the session up into many sections. But they must make sense, there must be a segue from one to the next and then must flow well. It also forces you the presenter to stay on the pre-planned path and not deviate too much
  • Leave your audience wanting more
    • If everyone walks out going “huh well I guess that is it then” you fail. If they walk out taking notes from your slides because they want to look up the demos or downloads later – then you have won.
    • You do not have to beat a dead horse to get your point across (see less is more below)
  • Practice
    • The only way you get better is practice, analyze, learn from your mistakes
    • Offer to speak at LUGs – they are almost all technical and with friends – you really can’t go wrong !
  • Know your audience
    • Make sure your abstract makes clear what the audience should expect and what level the talk is aimed at. This will ensure a better reception and better transfer of knowledge.
    • For example: I know a thing or two about XPages but I don’t have the faintest clue about what OSGI plugins. If I attended a session about the Extension Library I would be lost in a heartbeat if the first 15 minutes were spent explaining how the ExtLib OSGI plugin concept worked. If OSGI plugins were not mentioned in the abstract I would be scoring low.
    • Equally don’t insult them all by pitching too low either.
  • Vary your presentation method frequently
    • Don’t do the same thing slide after slide after slide.
      • Use visuals
      • Use metaphors
      • Use humor
      • Use demonstrations inter-dispersed with the rest of the content
  • Talk to the audience don’t lecture them
    • A presentation which feels like a conversation is much easier to comprehend than one which feels like a lecture.
    • It is OK to gloss over something – don’t feel like you have to explain everything. You don’t have time so explain the absolute essentials and then stick to generalizations because you don’t have time otherwise (unless this is a show and tell session)
    • Remember – your audience cannot keep up with you and take copious notes in the session. This is not a lecture. This should excite the audience to the possibilities of learning something new and it is not unreasonable for them to go away and do some research themselves. Give the audience the knowledge and the tools (and even code to download) to help themselves. They cannot possibly leave the session being an expert so don’t try and make them one.
  • Less is more
    • Attendees will be happier to finish a few minutes earlier than have to run to their next session. Don’t overfill the slide deck (see making them want more)

And I could go on and on. But please comment and tell me what you think is good and or bad as presentation skills – it is good for all of us to learn from each other 🙂

IBM Worklight Connect 14 supporting Information

Thank you to all who attended the session at IBM Connect this week.

If you want to see the slides for the presentation you can find them here

The link to download and install Worklight

Install Juno 4.2.2 (SR2)
(Eclipse IDE for Java Developers)
In Eclipse, click on Help\Eclipse Marketplace
and search for Worklight

Once we have the code for the demonstration available we will update the post

Ext JS Connect 14

This post is in support of the presentation I gave at IBM Connect 2014 – 28th January 2014

To find the demonstrations:

To find the Ext JS 4.2 examples

To find the slide presentation from Connect

I hope everyone that attended enjoyed the presentation – please feel free to ask questions and / or hit me up on twitter @MarkyRoden

1291: EXTJS in XPages: Modernizing IBM Notes Views Without Sacrificing Functionality

I am very happy to announce that I have been accepted to speak a second time at IBM Connect this year !!

In this session I am going to quickly review some of the previously published EXTJS related items on the blog (apparently not everyone reads it) but more importantly I want to discuss user experience. If nothing else, I have learned over the last 18 months that not only is EXTJS very cool in loading thousands of notes documents into  usable and functional web based grids, it also demands a serious serious respect and insight into the user experience. If your user’s are willing to wait many seconds to load thousands of documents they will not be willing to load thousands of documents again, and again, and again, as they go to view each individual document and go “uuurgh, not that one” and then reload the web page.

But this is XPages, and we have the technology to do better with a little forethought and planning. There is a monumental difference between:

1. Being able to meet a requirement to load thousands of documents into a grid and allow the user to open and review each document


2. Making them not hate the application in meeting requirement 1

(By the way – requirement 2 is never written in the same document as requirement 1 – it is kinda assumed)


Come and see the session, I promise it will be entertaining, there will be lots of demonstrations, stacks of free code and you will be able to relate to issues and requirements which you will have come across when modernizing IBM Notes applications.


The Abstract

In this session Mark will demonstrate how the use of the EXTJS library can effectively meet the requirement to modernize large data applications without sacrificing user interface familiarity. EXTJS is the only grid framework with large data set optimization built in.
Mark will discuss and provide working examples of how to manage large data sets and with it an exceptional user experience. You will learn how to display 1000s of  documents through XPages in ways previously considered impossible. With user customizable features like REST service integration, categorization, sorting, searching, column totals, filtering, charting, exporting to excel and many more you can put the power of instant data management back into a web user’s hands.

Accepted to speak at Connect 2014 – With John Jardin

Words cannot describe how excited I am to be speaking at Connect 2014 with my very good friend John Jardin.

IBM Worklight: Going From XPages Mobile to Native Mobile Applications, John Jardin, Ukuvuma Solutions; Mark Roden, PSC Group LLC”

We are very excited to be talking about IBM Worklight and how any XPages developer currently creating mobile XPages already has all the skill set necessary to create native mobile applications with Worklight.

We decided over a beer (or maybe more) in Orlando last year  that we wanted to speak together but the question was on what…. The plotting and hatching of a plan started for real mid-year. We knew it had to be about mobile, but exactly what that entailed evolved over time and more than 10+ draft abstracts. John showed me Worklight a couple of months ago and I was hooked / fascinated and excited about easy he made it look to work with.

John is a massive contributor to the XPages community and is an IBM Champion – I am honored to be sharing the stage with him and I know we are going to rock the house with this presentation.

More to come over the next two months 🙂

XPiNC browser url format – and why my demo failed at IBMConnect (part 2)

So this is article is to expand a little on the post I shared on Friday about my demo failure at IBMConnect. I will demonstrate why the problem occurred and what you can do about it. ALL thanks go to Simon Reid who pointed me at the reason once I had found the fix.

The Problem

I had a demonstration database which shows how some jQuery plugins can be used in XPages. The links within the menu “were” constructed as follows:

isExternal:=@If(@Right(Link; "http")!=""; @True; @False);

theLink:="<a href=\""+@If(isExternal; Link; "/"+@WebDbName+Link)+"\">"+LinkTitle+"</a>";

"<p>" + theLink+"</p>"+@NewLine

The point of this was to open up a link to an external site correctly and point a link to this database appropriately. The use of “/”+@WebDbName is to ensure that the database would still work when it was download and put on someone else’s server.

Works like a charm in the web

The Reason

As Simon Stated in his reply to my previous post – the XPiNC browser adds a /xsp/ to the front of the url.

To prove this I created a very simple link in an XPage:

<a href="javascript: alert(location.href)>Click Me</a>

And when I clicked the link in the XPiNC browser I got this…


And look at that “/xsp/xomino/jQinX.nsf” – there it is the xsp added to the URL

that is NOT what @WebDBName returns (/xomino/jQinX.nsf) and that is the root cause of the fail.

The Solution

There are a number of solutions and it really depends on what works for you – the fact that you are reading this you know about the issue and you need to work out which solution is best for you – here are some options if you need XPiNC support:

  1. Don’t user @WebDbName to get the database path – plain and simple.
  2. If you are able to – compute the links to the other XPages using the link control. I personally despise the link control because it is limiting and does not slot well into jQuery plugins – but it is an option.

The following code creates a link to the LongPress demo page – this works in XPiNC and on the Web

	<xp:link escape="true" text="Long Press Link" id="link2" value="/xLongPress.xsp" title="Long Press Link"></xp:link>

The link created looks like this in XPiNC

	<a id="view:_id1:_id2:_id52:link2" href="/xsp/xomino%5CjQinX.nsf/xLongPress.xsp" class="xspLink" title="Long Press Link">Long Press Link</a>

And looks like this in a browser

	<a id="view:_id1:_id2:_id52:link2" href="/xomino/jQinX.nsf/xLongPress.xsp" class="xspLink" title="Long Press Link">Long Press Link</a><br>

Unfortunately I want my links in documents in a view so that I can look them up – so I can’t use the xp:link

Here are some other options

  1. Use links which are not relative to the databasePath on the server. In my case I changed the menu links to be relative to each other “xPageSlide.xsp” rather than /xomino/jQinX.nsf/xPageSlide.xsp
  2. Use jQuery or dojo to do some form of XPiNC detection and manipulate the links after they have been sent to the page. You could do this by detecting if /xsp/ was the start of your location.path variable and adding it to all the link you cared about – this is dangerous and risky – not favorite which is also why I have no example.



The XPiNC browser adds /xsp/ to the front of all URLs – be aware of it

The solution depends on your needs – but for normal links to other XPages use the xp:link control which will do the link figuring out on it’s own

If I had not presented this and FAILED at IBMConnect I would not have had the conversation about it – and would not have learned something very important like this – AWESOME!


General Comment

How you deal with failure says a lot about your personality – if it drives you to be better then good for you.

This failure is a learning experience which was handled on stage by laughter, and I hope by this blog post as a learning experience for all 🙂


jQuery in XPages @IBMConnect demo fixed – and the problem explained

So I am in the middle of doing my presentation @ IBMConnect 2013 and everything is going relatively well…..and someone asks a question

Question: “Hey Marky – does jQuery work in XPiNC?”

Marky: “sure it does watch this”

Click Click
404 – proxyServer Error

WTF ????

#CrowdLaughter (mostly from my loyal friends)….

WTF??? 😦

I told the audience it was because I had obviously broken it and I thought I knew the problem – i apologized profusely and said that I would fix it ASAP. Well today is ASAP 😛

It now works – you can download the sample database from and run it in XPiNC

The Problem

Some genius…..had messed with the menu for IBMConnect and changed the menu links so they looked like this

	<a href="/xomino/jQinX.nsf/xPageSlide.xsp">PageSlide</a>

And that works perfectly fine in a web browser – but locally on the XPiNC webserver causes the ProxyServer error above!! The fix is simple – change it so that it is not relative to the server.

The issue is the /xomino link which is interpreted by the browser as, SLASH xomino. This is good technique because it doesn’t name the server and is therefore portable to other servers. But apparently fails in the local XPiNC server.

Why? I have no idea unfortunately but I am more concerned with the solution than the cause. Changing the links as follows and we have a working demo database again

	<a href="xPageSlide.xsp">PageSlide</a>

as all the demo pages are at the same level in the URL this is not a problem. Weird eh!

I will talk to some people smarter than I and see if I can find out why this problem is caused by the  XPiNC server – but be aware that you should not use links relative to the XPiNC server….weird!

I am very sorry this screwed up in the demo but hopefully enough people will forgive me and we can all carry on 🙂 🙂