3 January 2019 Thursday

2018 - my year in revue

Image:2018 - my year in revue
So, welcome 2019 ! This last year went by in a blast for me, I was more busy than ever running Harbour Light in Canada and Co-Running SIT in Germany. Both ventures have been very successful in 2018 - we grew our customer base, extended our product portfolio and most of all made the shift from a pure IBM shop to a full stack development and project management organization.
We had a lot of new technologies coming into our stack this year - the first AI and VR/AR applications went live. We have our first implementations of Apples AR solutions as well as the first productive applications using Microsofts Hololens product. A very strong discipline we had to invest in 2017 was API Design and this payed off in 2018 - being able to develop middleware in an agile way using AI services and multi cloud environments became essential to our business. Our first large application in that area was presented at DNUG, ICON UK and DNUG Developer Days and we will see a C3UG Video shortly.
My special thanks go out to my employees on both sides of the pond - my two little ones took a huge chunk of my professional time again this year as daycare is still more a concept in germany than a relieable infrastructure component. Without my employees covering my back whenever needed, I would have run aground several times this year. A big thank you goes to Gaby - our Nanny, without you, we would not have been able to run our professional life, so thank you !

Besides my two companies, I had some off-time ventures that really gave me joy as it was so much fun to work with talented and gifted people from Canada throughout the year - C3UG and our video series became a very interesting way for me to talk to other yellow bleeders and to discuss news, products and features in a fun and intuitive way. So Scott, Colin, Graham - thanks for a great year and I am looking forward to new things coming up in 2019.

Our beloved Domino Environment took new flight in 2018 - and after some twists and turns (I vented about this already) the future for a lot of the former ICS portfolio seems to have a bright future ahead at HCL. I personally would love to see these products thriving again and it would be great to be part of this journey in the future. This includes Connections and I product I really like for a long time already - WebSphere Portal.

The world became no safer place in 2018 and wont be in 2019 - I generally do not like where isolationism is taking our western societies, we will see what happens this year in the EU regarding the elections and Brexit. The economy is looking stable still but its crumbling on the edges, lets hope for a stable year 2019 here as well. I won't be venting here about politics - reality is more absurd than comedy or satire. That's more than telling for me.

Right before christmas, I received a nice email from IBM letting me know that I will be an IBM Champion for ICS in 2019 ! Thanks to everyone who voted for me, even though I might not have been politically correct all the time - I am really looking forward to work with this group of passionate, talented and gifted people in 2019. And I am grateful for this honor - I had some dreams in my professional life - speaking at lotusphere once (done that in 2016) and becoming an IBM champion was among them. So thank you all for making it possible to remove one item from my bucket list !

May 2019 be a good year with health and prosperity for all my readers, friends, families and colleagues - let's stay in touch !


Heiko Voigt   |   3 January 2019 21:51:32   |    SIT  Harbor Light    |   Comments [0]

12 December 2018 Wednesday

That HCL thing ... my two cents

My thoughts on the IBM <-> HCL deal

The dust settles slowly in these days after the announcement that HCL will buy an assortment of on premises software from IBM for $ 1.8 billion.

For me, there are two sides of the same medal to look at if we talk about this deal.

Side 1: HCL and its new possessions.

HCL made it very clear that they invest into these software assets to establish a new revenue stream to their company making the move to be a software reseller too after coming from a very effictive and well-running services area.
What HCL came up with for IBM Notes/Domino V10 and the plans for V11 looks encouraging - the new features are well received by the ever-faithfull and the yet small but remarkable buzz around the platform as well. The question for me is - will this be enough for the customers to trust HCL and stay on the platform or will this be the final nail in the coffin for the remainders of the IBM collaboration portfolio ? Time will tell, everyone encourages customers to stay while I just wait for all of my fellow business partners with migration tools to creep out of the holes again to finally rip the cadaver apart... . I hope HCL is able to pull off some strong messages soon - for Connections, Commerce and Portal as well as a lot of customers are still using these tools and they have been left out in the cold at least for as long as the Domino folks by IBM. So HCL - give us a strategy update quick to let us (your potential partners and their customers) know what to expect !

Side 2: IBM - the BREXIT from eveything

How can a company possibly screw up so many things in such a short amount of time ? I am not talking Notes/Domino here specifically but it is a posterchild of what happens here. IBM starts a partnership with HCL for N/D, starts Jams, Campaigns, aha-sites and what have you like never in the years before and now, after a couple of months of making partners and customers believe they got it - no, we sell it of and declare a brexit from all things collaboration / commerce / portal and other sort that's on premises. After telling customers that nothing will change for them. Again. From doing nothing for years to start building a momentum to shooting yourself in the foot in two months from the V10 launch - that really can only be topped by the british brexit circus. How much money got spent, how much momentum has been built for this now ? This for me shows IBMs misery these days - conflicting, not trustworthy messages and I am sure that the people in the respective brands were as surprised as us outsiders about these rapid changes. So everyone still using the cloud offerings of IBM should notice this behaviour. Can you really trust this company with your data going forward ? IBM believes in the Cloud so keeping Connections Cloud ond Verse in the Cloud makes sense... . Wait a minute. What ?! For how long ? And then what ? Who will be in charge for bug fixing, support, future development ? I guess the cloud stuff would have been sold as well if the data security issues would have been easier to resolve.

To me, the state of IBM is shocking. Is this a company I can/want to partner/trust in the future ? Of course all of this is part of business as usual but while other companies buy and sell parts of their portfolio all the time, the clear lack of vision and somewhat coordinated communication within the last couple of months leaves me almost speechless. The company I started my professional career in is no longer a general IT business. It's becoming a highly profitable niche player, discontinuing stuff on the go they are no longer able to sustain and maintain. Good luck IBM. I don't think this will lead you and your (in a lot of cases very talented) employees into a sustainable future. But that's just my guess - who am I to tell IBM what to do ;-).


On the upside of things I believe that for most customers using the tools now sold to HCL there will be a smooth transition regarding contracts, support and so forth so nobody will be left out in the cold. The real issues for me are more strategic ones.
Thank god the holiday season is coming up, this leaves some off time to vent and think things through. While I am tempted to become an HCL partner with my companies, I will have to think twice of what to do with IBM. I have to see if there is enough value proposition in the watson area for us as a small ISV to continue or if we should switch to AWS, MS or Google for all things cloud based services. We do this to some extent today already, but damn it, I would have loved to have some compelling options in this game using IBM technology. Today, after some really bad experiences with the IBM Cloud, I'm not so sure there either. Lots to think about for 2019... . What's your take ?
Heiko Voigt   |   12 December 2018 13:04:29   |    HCL  IBM  Domino  Notes  Connections    |   Comments [8]

11 December 2018 Tuesday

Die spinnen, die Römer....

Es gibt selten Tage, an denen ich Schlagzeilen lese, bei denen die ganze Malaise unserer Zeit offenbar wird. Heute ist wieder so einer und ich wollte das mal posten, damit mir keiner sagen kann, es hätte niemand aufgeschrieben,

Die erste Schlagzeile kommt aus Spiegel-Online und betrifft Michel-Deutschland:

"... Cum-Ex-Recherche
Staatsanwaltschaft ermittelt gegen "Correctiv"-Chefredakteur
Mit den Cum-Ex-Enthüllungen hat die Recherchegruppe Correctiv einen Milliardensteuerbetrug aufgedeckt. Nun ermittelt die Staatsanwaltschaft gegen Chefredakteur Oliver Schröm. Er habe Banker angestiftet, Geheimnisse zu verraten.
Link: http://www.spiegel.de/kultur/gesellschaft/correctiv-staatsanwaltschaft-ermittelt-nach-cum-ex-recherche-gegen-chef-oliver-schroem-a-1243113.html
Es ist wirklich nich zu glauben - da werden mit Tricks und politischer Duldung durch Rollotov-Schäuble dem Staat Milliarden an Steuereinnahmen hinterzogen und die Journalisten, die den Skandal aufdecken lässt man von der Stattsanwaltschaft verfolgen. Ach ja und die Auto-Bosse dürfen in Deutschland auch einfach so weiter machen wie immer. Aber kleiner Michel - wehe Du zahlst Deinen Strafzettel nicht oder Deine Steuer zu spät ! Pfändung und dann Knast, ganz automatisch. Dieses Land wird mir immer unsympatischer. Hmmm? Forentroll ? Ja, ich gehe bald, wenn's mir hier nimmer passt.

Die zweite Schlagzeile ist eher zum Schmunzeln von Heise:
"...10.12.2018 15:10 Uhr
China sieht Menschenrechte von Huawei-Finanzchefin verletzt

Seit gut einer Woche sitzt Huawei-Finanzchefin Meng Wanzhou in Haft. China wirft Kanada nun vor, sie "unmenschlich behandelt" zu haben.


">Link: https://www.heise.de/newsticker/meldung/China-sieht-Menschenrechte-von-Huawei-Finanzchefin-verletzt-4246880.html

Die Ober-Menschenrechtler wieder. Ganz großes Kino.


">Wenn das Leben die Satire überholt, oder wie war das noch - manchmal glaube ich wirklich, dass ich im falschen Film bin.

Aufwachen !





Heiko Voigt   |   11 December 2018 14:17:13   |     |   Comments [0]

14 November 2018 Wednesday

DominoDB and a big NO-NO !

So folks,

the beta of DominoDB is out and people are starting to use it.
One of my early-adopting customers started to play around with it and started to create a React.-based application using DominoDb to modify database content. They secured their Proton task using the SSL encryption. So far so good. What I did not expect was the flaw in the architecture of the app that I came across when I looked at the source.-
The guys where using DominoDb right from the React App IN THE CLIENT APP ITSELF. The next pictures illustrates what I mean by that:

Image:DominoDB and a big NO-NO !
For testing, they opened their firewall at the proton port and are now communicating via SSL from the browser directly to the proton task on the server. While this is working, for me as a solution architect, this is a big NO-NO as you expose your client access keys and encryption keys in an end-user application as well as the server address for your proton task, name of the database etc. DO NOT DO THIS !!!!

From my perspective, DominoDB is always sitting on a server. Period. It is ment to be sitting behind a REST-Facade that hides the application and server access part from the end user. So my quick redraw of the architecture would look like this:

Image:DominoDB and a big NO-NO !

So the Client Browser only talks to the reverse proxy which then accesses resources on Domino (Xpages or whatever) or a Node/Express based REST-API that takes care of the Domino related tasks using DominoDB.

I wasn't prepared to having to write this up as it seemed logical to me but maybe it's better to write it down, eh ?!

Have your say....

Heiko Voigt   |   14 November 2018 16:38:29   |    Domino 10  #dominoforever  react  node.js    |   Comments [12]

IBM Domino domino-db for Node.js First Look: Will it leave you angry and disappointed?

The new Node.js module for IBM Domino, domino-db, is available from IBM in Beta. This video presents our first impressions of the module. Both Colin and Heiko used the quick start guide included in the download to test it. Our goal is to answer the question: will using this module leave you angry and disappointed?

The demos in the video show the basic use of the module. IBM has included a Notes database in the download that you can interact with. Colin does a query, using the new Domino Query Language, written in Node and Express. Heiko does a demo of a CRUD operation against the database. Heiko also illustrates how to take the first steps in setting up a secure connection between the Express app and the Domino server.

You can sign up for the Beta program and start playing with this yourself. Register here:

Here's the link to the video:



Heiko Voigt   |   12 November 2018 09:22:36   |    IBM  Domino  #dominoforever  node.js  dominodb    |   Comments [0]

10 September 2018 Monday

My speakers sessions in September

Good day,

Developing more and more using Watson APIs, React and Node.JS, I will be speaking at several occasions about an epic venture we took on this year.

First, I will start off at ICON UK later this week:


My talk will be around one of our first large AI based projects for a customer in Canada - digging out important emails from various channels based on personal profiling and machine learning. I will talk about the pitfalls and the overall approach we took to reach our goal.

If you can't make it to ICONUK, you can meet me at the "DNUG Entwicklertag" on September 25th in Koblenz, where I will be speaking about the same topic:


And if you can't make it to this event, well, then you will have to wait for the recorded presentation from C3UG, the Cross Canada Collaboration User Group later this month. If you haven't seen our videos from Connect and Engage (the Maple Lounge Sessions), I encourage you to take a look here:


Hope to see you guys soon at any of these locations !

Have fun & take care


P.S. - yes, "speakers" sessions. I'm travelling with an Amazon Echo Dot and a set of bluetooth speakers. The are the stars of the rodeo. So there's that.
Heiko Voigt   |   10 September 2018 15:18:24   |    AI  Watson  XPages  Domino10    |   Comments [0]

Thanks for having me, DNUG !

I will be speaking at DNUG in June this year about a communications topic - how to use Watson AI to better prioritize your messaging and e-mail channels.
We will be showing a prototype that we have built for one of our canadian customers that will digest several input channels from GMail, Verse and Watson Workspace to assess the importance and relevance of the specific message in context of the users priorities and communication habits. It will then tell you the potentially most important messages in a web interface and via voice input/output using Amazon Alexa.

Please find the link to my session and everything around DNUG here:


See at Engage and at DNUG later on. Watch out for the Maple Lounge at Engage this year !


Heiko Voigt   |   15 May 2018 10:37:07   |    DNUG  Watson  IBM  Verse    |   Comments [0]


as I stumbled accross this issue a couple of weeks ago and found a workaround today. Some good'ole Notes Client stuff... .

What did I do ?

I created a Notes Document in LotusScript via an action button in a view. In the document, I changed some fields and used an action button to save the changes, close the uidocument, append some richtext via LotusScript to a richtext field an re-open the document using ws.editDocument(True,doc,,,False) in Edit mode again. We use this often if we have to append richtext programatically.

So far, so good. I continued editing in the UI and saved at some point - Notes wanted to create a save conflict due to multiple edits. The code I used for the above has not changed in years. The database has been using document locking for three years.

After some serious testing at the customer site, we learned that this behaviour started with Notes 9.0.1 FP8. Everyting earlier is fine, the problem also exists in FP9 and the 1st Beta of FP10, so something has changed since FP8 and after some more digging we came across document locking. It seems as if the sequence when the document gets unlocked by ui.close() and reopened (and re-locked) by ws.editDocument() must have changed - from FP8 onwards, the lockholders of the document re-openend for editing are empty for the UI Document but not for the backend document in the database ! So, indeed, there was an edit event happening in the backend after the re-open of the document in the UI.

The Workaround:

After fiddeling around with some events, I found a workaround by writing the current user as lockholder into the document in the querysave event of the underlying form:

Sub Querysave(Source As Notesuidocument, Continue As Variant)

       Dim doc As NotesDocument

       Dim s As New NotesSession

       Set doc = source.Document

       If(doc.IsNewNote=False) Then

               If doc.LockHolders(0)="" Then

                       Call doc.Lock(s.EffectiveUserName)

               End If

       End If

End Sub

So with that, if I am the current lockholder in the backend, I can successfully save my changes without generating a save conflict.

Hope this helps if someone runs into a similar issue.

Heiko Voigt   |   29 January 2018 15:45:27   |    Domino  Notes  FP8  FP9  FP6    |   Comments [0]

10 January 2018 Wednesday

2017 - mein Jahressückblick

Das Jahr 2017 – mein Rückblick

Das Jahr 2017 hat für mich turbulent begonnen. Unsere im November 2016 geborenen Zwillinge zwangen mir eine komplett neue Tages- und Nachtroutine auf. Füttern, wickeln, spielen, spazieren gehen, füttern, wickeln, schlafen, nachts um drei im Halbschlaf Schoppen machen und geben und das tagein tagaus. Ich lernte den Begriff “Jetstream” neu zu definieren – wenn meine kleine die Milchflasche in der Nacht in einem Zug weggeputzt hat, dann war dies der “Jetstream”.Und jede Nacht hoffte ich auf selbigen, entschied er doch, ob ich nach 15 Minuten wieder im Bett sein konnte oder ob es 45 bis 60 Minuten dauern würde.

Früh im Jahr verstarb mein Schwiegervater, ein Mann, zu dem ich ein sehr herzliches und liebevolles Verhältnis hatte und der mich immer wie einen seiner Söhne behandelt hat. Lieber Kurt, ich bin froh, dass Du Deine kleine Enkelchen noch kennenlernen konntest und wir noch ein gemeinsames Weihnachtsfest feiern durften. Du hinterlässt große Fusstapfen und ich habe viel von Dir gelernt.

Das Irre in dieser Zeit ist, dass man erst mit unglaublicher Verzögerung zum Nachdenken kommt. Bis Februar war ich noch vier Tage die Woche in einem tollen Projekt in Köln, zwei kleine Schlümpfe zuhause, Firmen in Kanada und Deutschland und zwei weitere direkt betreute Kunden in Süddeutschland. Und dann kam der harte Bruch – Elternzeit ab erstem März. Jetzt mussten die Firmen und Kunden mit “Minimalbetreuung” funktionieren – ich musste deligieren, umverteilen und Aufgaben abgeben an meine Mitarbeiter. Und es hat funktioniert ! An dieser Stelle möchte ich mich ganz herzlich bei den Mitarbeitern der SIT GmbH und der Harbour Light Software Development Ltd. bedanken, die mir in diesem Jahr mit großem Einsatz den Rücken frei gehalten haben. Ohne Euch hätte dieses Jahr ganz böse ausgehen können. Habt Dank dafür !

Wenn wir gerade bei der beruflichen Sicht sind – dieses Jahr wurden einige neue Technologien in unser Portfolio aufgenommen. Neben etlichen IBM Watson APIs haben Unity, die Microsoft Hololens und Amazon Alexa bei uns und in etlichen Kundenprojekten Einzug gehalten. Die letzte Ergänzung ist das Apple AR Kit.
Wir sind jetzt mit Mail und Collaboration in der Cloud. Tut. Reicht. Nicht alles geht, nicht immer sind wir online aber insgesamt überwiegen für uns als kleines Unternehmen die Kostenvorteile ganz klar. Schon die halbe gesparte Stromrechnung für unsere Connections Serverfarm im eigenen RZ bezahlt nun das Jahresabo für die IBM Connections Cloud und IBM Verse. Der freut sich der Schwabe in mir.

Meine Usergroup-Aktivitäten haben sich in diesem Jahr auf die Cross Canadian Collaboration Userg Group (C3UG) beschränkt – ein neues Video-Format wurde aufgesetzt und eine Multizeitzonen-Veranstaltung von der Ostküste in Halifax über Toronto und Calgary bis zur Westküste in Vancouver mit Vor-Ort-Veranstaltungen und Live-Video-Streams in die einzelnen Lokationen. Das alles hat tierisch Spaß gemacht und viele neue Kontakte und interessante Gespräche erbracht. Im Dezember konnte ich mein erstes Video für die C3UG produzieren mit Maureen Leleand zum Thema “Project Livegrid” - in Kürze auf dem C3UG YouTube Kanal.

Veranstaltungen. Ich war auf der DNUG in Berlin (in meinen Augen eine tolle Veranstaltung), auf besagter C3UG Veranstaltung und seit Jahren einmal nicht auf der Connect-O-Sphere. Und ich muss sagen, ich habe es nicht bedauert. Die Nachlese-Events hier sind sehr gut und bringen das Wesentliche auf den Punkt. Die Kontaktpflege wurde virtueller aber deswegen nicht weniger intensiv. Die DNUG Stammtische in Stuttgart habe ich nach einem letzten denkwürdigen Abend an den Nagel gehängt – zu viel Ärger mit den “Kollegen”.
In Kanada ticken die Uhren anders. Der permanente Mehltau über den IT-Entscheidungen in Deutschland weicht dort einem manchmal fast heiteren Ausprobieren. Klar, kostet Geld, wenn’s klappt ist gut, wenn nicht macht man was anderes. Man ist flexibel und undogmatisch bis auf zwei Dinge – iPhones und Microsoft Office 365. Alles andere kann munter mit hinzugemischt werden – in der Cloud, on premises oder hybrid – man setzt sich hin und analysiert die Fachanwendungen und entscheidet dann. Heterogenität wird als Chance betrachtet und nicht als IT-Leitungs-Versagen dargestellt. Einer unserer Kunden im Finanzsektor brachte es auf den Punkt - “wenn ihr uns ein Fachverfahren bauen könnt mit einer IT Lösung die wir noch nicht haben, die Lösung aber genau passt, dann nehmen wir sie. Wir sind in der IT Dienstleister des Fachbereichs, kein Klugscheißer.”. Man ist schneller bei einem Kunden drin, aber auch schneller wieder draußen, wenn die Leistung nicht passt. Die Zusammenarbeit ist in der Regel aber sehr gut – als einem unserer Kunden das Geld ausging und fünf Mitarbeiter aus dieser Firma heraus eine neue Firma gründeten, wurden wir von den weggehenden Leuten gewarnt, schnell unsere Forderungen geltend zu machen. So sind wir um einen großen Forderungsausfall herumgekommen und hatten einen neuen Kunden. Man muss auch mal Glück haben. Und so ist Harbour Light auch im 6. Jahr des Bestehens wieder profitabel und wächst. Unser größeres Büro in downtown Shelburne ist eröffnet und “operational” - es war ein gutes Jahr.

Für die SIT GmbH war es ebenfalls ein gutes Jahr. Wir konnten alle Bestandskunden halten und einige Neukunden gewinnen, bei denen sich langjährige Partnerschaften abzeichnen. Von einem Entwicklungspartner mussten wir uns mit einer Gerichtsverhandlung trennen aber auch dieses für mich persönlich sehr anstregende und unglaublich dämliche Verfahren konnte ebenfalls mittels eines Vergleichs noch in diesem Jahr abgeschlossen werden. Viel Zeit und Geld ging dabei verloren und manches Momentum ging vorüber. Trotz dieser aussergewöhnlichen Belastungen werden wir ein starkes wirtschaftliches Ergebnis haben, was einmal mehr für die Qualität meiner Mitarbeiter spricht.

Die knappe Zeit, die mir Job und Kinder gelassen haben, wurde von unserem dritten Nebenprojekt aufgefressen – wir bauen. Eine spezielle Erfahrung, die in Kürze mit eigenen Blogeinträgen gewürdigt werden wird. Einzug ist Ende Februar 2018 geplant – zum Ende meiner Elternzeit.

A propos Elternzeit – ich rate jedem Elternteil, dieses Angebot UNBEDINGT zu nutzen. Die Erfahrungen, die ich in diesem Jahr mit meinen zwei Schlümpfen machen durfte sind unbezahlbar und unwiederbringlich. Ich habe die Zeit nicht immer ad-hoc genossen aber meist schon am Abend wieder über das Wunder des Lebens gestaunt und die unglaubliche Reise, die diese beiden kleinen Menschlein durchlaufen. Und heute, mit 13 Monaten, beginnen sie bereits zu sprechen und laufen auch schon. Ich habe einen eigenständigen Blog für diese Reise angefangen – mit dem für mich bezeichnenden Titel “Einling kann Jeder”. Zwillinge sind etwas besonderes und sind faszinierend in Ihrer Entwicklung. Gleichzeitig prasselt die gesamte westliche Shoppingkultur auf junge Eltern ein. Es ist unglaublich, was zwei kleine Kinder, die nicht laufen, essen und reden können bereits an Ausrüstung und Kleidung “brauchen” und wie groß die Industrie in diesem Komplex ist und wie viel Druck bereits aus Eltern speziell im Bereich Gesundheit und Sicherheit gemacht wird. Mir kommt es im Nachhinein wie ein Zufall vor, dass wir als Vorgeneration überhaupt die Kindheit überlebt haben.

Wir haben nun auch Trump schon eine Weile überstanden, die GROKO bei uns wird nicht vermisst, kommt aber wieder und beerdigt mal eben so das Klimaziel für 2020 am ersten Sondierungstag. Das Schlimme an solchen Hirnpüpsen ist, dass mit der Abkehr von solch zentralen Weichenstellungen für Wirtschaft und Gesellschaft irgendwann nichts mher sicher ist. Man sehe sich die Foriesten auf SPON zu diesem Thema an – die deutschen AKW-Betreiber schiessen aus allen Rohren, um auch diesen Ausstiegs-Beschluss wieder zu kippen. Aber so ist es, wenn man außer dem eigenen Machterhalt keine Werte und kein Rückgrat hat. Das betrifft zum einen die Union aber auch die SPD, die wie es Dieter Hildebrandt einmal treffend formuliert hat “… jede Hose vollmacht, die man ihr hinhält...”.

Somit wird 2018 turbulent werden – ich freue mich auf die “Maple Lounge” auf der Think!-Konferenz im März, auf spannende Themen im Bereich VR/AR und die intensive Zusammenarbeit mit meinen Kunden mit neuen und alten Themen.

Es grüßt ein neugieriger

Heiko Voigt.
Heiko Voigt   |   10 January 2018 09:56:36   |     |   Comments [1]

Hi again,

in this third part of my plugin series, I want to take a look at some visualization stuff. Mainly, I had to come up with some display options to show numbers in a certain context to the user. In this case, I had to display sentiment values for s specific text coming from IBM Watson Natural Language Services.This service gives you (besides other content) a sentiment value from -10 (very negative) to +10 (very positive). +

PLEASE NOTE: I AM FOCUSSING ON THE XPAGES PART HERE ! I WILL *NOT* DESCRIBE THE HANDLING OF THE WATSON SERVICE CALLS HERE ! If you are interested in those, sound of in the comments or give me a shout.

In the details analytics component for the text entered, I wanted to give the user the option to quickly see the result on a scale display like this:

Image:My XPages Plugin Series: Volume 3: ion Rangeslider and jQuery Knob

This is the first part, we are going to look into in this part of the series.

The 2nd part is sort of a dashboard feedback for multiple text elements to quickly grasp the feedback coming from IBM Watson. This is something like this:

Image:My XPages Plugin Series: Volume 3: ion Rangeslider and jQuery Knob

This control renders parts of the text and creates some value circles to display the return values from IBM Watson about that text.

The two plugins I use for that are:

ion Rangeslider:
and jQuery Knob:

As usual, these get loaded as a HEAD-Tag in my XPages:

xp:headTag tagName="script">
<xp:parameter name="type" value="text/javascript" />
<xp:parameter name="src"value="js/plugins/ionRangeSlider/ion.rangeSlider.min.js" />
xp:headTag tagName="script">
<xp:parameter name="type" value="text/javascript" />
<xp:parameter name="src"value="js/plugins/jsKnob/jquery.knob.js" />

Within the XPage, I will display the value of the slider using a Session Scope variable. Other ways are possible as well, of course. The code to render the slider looks like this:

div class="col-md-12">
<i class="fa fa-sliders"></i>
&#160;What's the sentiment of this message ?
<div class="ibox-content">
<div class="m-b-sm m-t">
<small ><strong>Sentiment value:</strong> from -10 (negative) via 0 (neutral)&#160;to +10 (positive) </small>
<div id="ionrange_3"></div>
<xp:inputText id="inputSentiment" styleClass="inputSentiment"
="#{sessionScope.Sentiment}" style="display:none">

The value is located in a hidden field (display.none), the DIV ionrange_3 contains the slider. To complete the slider component, we will have to initialize it in the document.ready() function, this will initialize the knob controls as well:

<!-- Script Blocks for jQuery -->

xp:scriptBlock id="scriptBlock1">

       min: -10,

       max: 10,

       from: sval,

       prettify: false,

       hasGrid: true




As you can see, ionRangeSlider offers various parameters to play around with, just take a peek on the website above.

Now, let's take a look at the knob part, the following code snippet defines the knob control. I create the complete control as a computed text and the item gets rendered at runtime in the browser.

div class="m-r-md inline">
<xp:text escape="false"        disableTheme="true">
<xp:this.value><![CDATA[#{javascript:var         value=myDemoBean.getSentiment();
     var back ="<input type=\"text\" value="+value+" readonly class=\"dial m-r\" data-fgColor=\"#5367CE\" data-width=\"85\" data-height=\"85\" data-step=\"1\" data-min=\"-10\" data-max=\"10\" data-displayPrevious=true>";

     return back;}
div class="m-b-sm m-t">
<small ><strong>Sentiment: (-10 to +10) ?</strong></small>

The base element to identify the input type as a dial knob is the class element "dial m-r". I don't want to change the values displayed so the input tag is readonly. My next job is to move this control in a custom control and add  parameters like the Min/Max values, Step size, etc..
The value to display is coming from a java bean.

As described, both plugins give you a huge set of parameters to play around with. One of the next parts of this series will be about using these controls for data input and how to persist the values in a bean or a domino document.

So far for today, happy coding !

Heiko Voigt   |   14 November 2017 10:08:24   |    Domino  XPages  jQuery  Bootstrap    |   Comments [0]