Skip to content

Index

Developing for Research

It's been nearly five years since I joined HCL Labs, progressing currently to Associate Director - Research. In that time I've been involved in:

  • setting up HCL's Open Source Project Office
  • researching the state of rich text editing on the web (as I covered in a session at Collabsphere in 2020)
  • leading the modernisation of language, extensions and tooling of LotusScript as VoltScript
  • integrating VoltScript into Volt MX Foundry as a first-class language adapter
  • web components
  • and a variety of other projects

Adventures in AI

Recent Scenarios

Those who were at Engage will have seen some of the experimentation I've been doing with AI in the context of VoltScript. In the OGS Jason demoed how I used it to provide code for a loop, correcting it with information about APIs specific to VoltScript. Before my VoltScript session, I showed two videos demonstrating how I've used AI to add value to the VoltScript coding experience, firstly by checking unit tests for code coverage and then by checking code complexity of functions in VoltScript Collections. These are code quality features that are provided out-of-the-box for more standard languages like JavaScript and Java, features that have long been on my wishlist for VoltScript, but features that will not be available in the near future. But GitHub Copilot filled a gap to provide the required information as a stop-gap.

Engage 2024

Engage 2024 Later this month I will be attending Engage 2024. It will be a bittersweet experience. Engage was the first conference at which I spoke, a session that was way ahead of its time, highlighting the power of repeat controls in XPages and advocating against using View Panels. Ironically, at Engage this year, one of the sessions I'll be delivering has some similarities. But I'll cover the sessions I'm involved in chronologically.

Eclipse Java Debugging

When XPages came to Domino it introduced many Domino developers to Java. Because the IDE was based on Eclipse, it also introduced Domino developers to standard elements of Java development on Eclipse.

Domino and JavaScript Development MasterClass Redux

Nearly six years ago I delivered a session at IBM Think with John Jardin called "Domino and JavaScript Development MasterClass", a session I also delivered at Engage in May 2018. The session was delivered at the request of Andrew Manby, product manager for Domino. It was shortly after the first Domino Jams when JavaScript development against Domino was a key point of focus and it pre-dated any specific developments to expose Domino for JavaScript development. Now seemed a good point to revisit and review, not only in the context of Domino REST API and Volt MX Go, but also with the future of VoltScript in Volt Foundry.

XPages Elements Beyond the NSF

I do very little XPages these days, I have one application for personal usage that rarely gets updated. But it's when applications rarely get touched that changes elsewhere on the server can have a big impact. I'm going to cover two here, the first raised by a discussion on Discord last week.

Postman: The Crucial Tool for Any Microservice Developer

My history with REST development is long. In 2018, before I joined HCL, I delivered a session "Domino and JavaScript Development Masterclass" at IBM Think. When I posted about my development tools in 2017, Postman - then just a Chrome plugin - was key amongst them. Then in 2020 I posted an overview of Postman. And just as both John and I used Postman as a crucial tool when building the application we showed at our session at IBM Think, it's the tool that should be used by anyone doing anything with microservices - which is what every scope your create for Domino REST API is.

Bali Unit Testing Framework Videos

Two weeks ago four videos were posted on OpenNTF's YouTube channel walking through the functionality of the Bali Unit testing framework. The videos are:

  1. Introduction to Bali Unit Repo: where to find the code and documentation, ask questions etc.
  2. Bali Unit Basic Introduction: the structure of test runner and test suites.
  3. Bali Unit Tests and Assertions: a deep dive into creating tests and the various assertion functions that are available.
  4. Bali Unit Advanced Functionality: custom testers and custom code to run before all tests, before each test, after each test, after all tests.

Andre's Directories Challenge

I am sure that anyone who uses LotusScript has been following the excellent blog posts of Andre Guirard. Recent blog posts on large arrays and queues have been particularly interesting for those of us working on VoltScript. His blog post on a Queue data structure ended with a challenge. The root of the problem is that the LotusScript Dir() function is not recursive. Without a parameter it gives the next file or directory relative to its last call. So you can't have one loop using Dir() and an inner loop that also uses Dir(). Andre uses a Queue class to perform FIFO (First In First Out), which achieves what's needed, but not as required: