Show/Hide column in a NotesView  

By Patrick Kwinten | 11/30/24 3:25 AM | Development - Notes / Domino | Added by Roberto Boccadoro

Most applications have different types of users. Some are normal users, some are power-users and some are administrators for the application. Mostly we provide different sets of views for these user categories and to optimize performance and indexing these users sometimes share the same views. But the information in that view is not always useful all types of users.

Reaping the Benefits of Standard  

By Paul Withers | 11/21/24 7:36 AM | Development - Notes / Domino | Added by Roberto Boccadoro

More than three years ago we began work on VoltScript. A little over a year ago we released our first Early Access code drop. There were certain core principles to which we developed. Two of these were a modern developer experience and adoption of standard development practices. Over recent weeks I received ample evidence of the benefits as improved and extended Archipelago, the build management engine of VoltScript.

Sort it out (your JSON collections)  

By Patrick Kwinten | 11/8/24 3:49 AM | Development - Notes / Domino | Added by Roberto Boccadoro

The day after the US elections. Time to sort it out. Not the election results but the collections in the Run4Fun application. I hope you like lists with JSONObjects in your XPages application as much as I do but what you see is normally the order you stick the objects in the list. If you want them to have sorted in a certain way, perhaps by a certain key (firstname, lastname, email, age, time etc) either you have your source (a NotesView?) adapted to it OR you have to apply something that does that to your objects in the list. That something is called a comparator.

Partial refresh gone bad   

By Patrick Kwinten | 11/4/24 3:43 AM | Development - Notes / Domino | Added by Roberto Boccadoro

For a (very) large and complicated intake form I have checkboxes that based upon the value (checked/unchecked) should calculate the visibility of multiple sections of the form. I guess most of us remember Tim Tripcony’s comment on a question about partial refresh on SO. That seemed to work fine from scratch but the intake form has grown and grown during the years due to regulations and the responses from the chained xsp.partialrefreshget calls gone bad. As a result sometimes the other sections pop up very late or not at all ��

Check the minimum client version for your Notes application  

By Daniel Nashed | 10/25/24 3:12 AM | Development - Notes / Domino | Added by Roberto Boccadoro

Notes provides new functionality in Lotus Script and there also Java classes added to the client. Lotus Script Named documents have been introduced in Notes/Domino 12.0.1. I have just written an application which needs a Java class which is introduced in Notes 12.0.2 as it turned out. So I came up with a simple check I am going to add to all my applications which use more current functionality. You can drop this code into the PostOpen script of any database and switch to the right constant

XPages App to Web App: Part Seven - CSS  

By Paul Withers | 10/8/24 5:09 AM | Development - Notes / Domino | Added by Roberto Boccadoro

In the last part we created the login form. In this part we’re going to start adding some theming. Theme Colours The power of XPages is in the out-of-the-box themes available. These provide styling for the various XPages components and some developers may even have not add their own CSS. But hopefully developers have.

LotusScript Classes and Delete  

By Paul Withers | 9/24/24 1:04 AM | Development - Notes / Domino | Added by Roberto Boccadoro

A couple of years ago I wrote a number of blog posts about LotusScript / VoltScript classes. The topic is relevant to both languages, we’ve not made any changes to how classes are managed in VoltScript, even though we discussed adding some things added to Visual Basic since LotusScript was created, things like additional modifiers. Even though classes are still the same, we’ve used some quite sophisticated aspects of class, as will be apparent to anyone who has looked at VoltScript Testing, its LotusScript port bali-unit, VoltScript JSON Converter, or VoltScript Collections. Three particular aspects I used in those projects are of particular relevance for this blog post.

Recent Open-Source Project Updates  

By Jesse Gallagher | 9/7/24 10:01 AM | Development - Notes / Domino | Added by Roberto Boccadoro

I've released a spate of open-source project updates recently, and I figured it'd be good to round up what's new. Most of them are utilitarian in nature - mostly fixes for things that crop up with Domino 14 and Java > 8 - but the first one is larger.

Radomly removed JAR resources: the reason   

By Oliver Busse | 9/6/24 6:50 AM | Development - Notes / Domino | Added by Roberto Boccadoro

Remember my last post about Domino Designer just randomly removing JAR resources from the NSF? I first thought it was something with the ODP and Git but I was wrong. It turned out that you don't even have to work with an ODP or even Git to run into this problem. The real cause of this is still unclear, I add this to the various hiccups of Domino Designer that we all got used to. There's a solution....

Issue with old Domino JAVA agent  

By Patrick Kwinten | 8/29/24 11:37 AM | Development - Notes / Domino | Added by Oliver Busse

I got the request to extend the summary report in the email message that a scheduled Domino agent is sending out. In the report some lists of missing data in the database needs to be added so users can work more efficient. So what do we do?

XPages to Web App Redux: 2  

By Paul Withers | 8/21/24 6:45 AM | Development - Notes / Domino | Added by Roberto Boccadoro

XPages to Web App Redux: Part Two - Dev Tools Many Domino developers may not have used anything other than Domino Designer. We’re stepping into a different world of development here. So we’ll be using different tools. Plural.

XPages to Web App Revisited: Part One - Introduction  

By Paul Withers | 8/19/24 7:47 AM | Development - Notes / Domino | Added by Roberto Boccadoro

Many years ago I wrote a series of blog posts on the topic of XPages to web app. At the time my target technology was Vaadin running in an OSGi plugin on Domino HTTP server (initially) and then CrossWorlds - Daniele Vistalli’s innovative approach to use Domino data via OpenNTF Domino API on a Websphere Liberty server running as a sidecar to Domino. My experience of developing with Vaadin lagged behind the technology, because it quickly evolved not only to Java 8 (and undoubtedly beyond) but used annotations which required Servlet 3.0. Today there are a variety of options for web application. Adjacent to Domino is Jesse Gallagher’s JakartaEE approach. Domino REST API can host applications as well. Frameworks like Angular and React have gained prominence. JSP is still seen in some places, but seems to have slipped from prominence. But after my session at Engage with Stephan Wissel, and particularly the rapid evolution of browser support over the last few years, my target is traditional web, hosted in Domino REST API’s server.

Domino REST API Proxy Problems  

By Paul Withers | 8/1/24 6:36 AM | Development - Notes / Domino | Added by Roberto Boccadoro

Earlier this week I was working with Domino REST API for a personal project and encountered what appeared to be a bug. It was a very strange issue, but one that had a simple cause that was ultimately easy to verify. In this case, Domino REST API’s `/lists/{name}’ endpoint was resulting in unexpected results. For certain views on the server I was using, e.g. a view with a name “vwFoo” was returning expected results. But for hidden views, e.g. “(luKeys)” I was getting a 405 “Method Not ALlowed” error when accessing via Postman.

Domino RESTAPI Bug and WorkAround  

By Keith Brooks | 7/31/24 6:47 AM | Development - Notes / Domino | Added by Roberto Boccadoro

This is not my usual line of thought as an Admin, but sometimes, AdminOps is better than DevOps because troubleshooting is not an exact science. While customers over the last year or so have been asking about the HCL Domino REST API, my reply is usually something like, I can install it, but you are on your own afterward, or I point them to a Developer friend. To be fair, HCL will help them/me with getting started or "where is/How do I" questions. But this is about the bug my client and I discovered and how to work around it.

Pretty-Printing JSON in the (Desktop) Notes Client and Domino  

By Jesse Gallagher | 7/29/24 3:21 AM | Development - Notes / Domino | Added by Roberto Boccadoro

In the OpenNTF Discord (join if you haven't!), Daniel Nashed brought up a task he was facing: in the Notes client, writing pretty-printed JSON. LotusScript has its NotesJSON* classes that can process JSON in their stark way, but the stringify output is meant for machine reading and doesn't include whitespace and line breaks, making it ill-suited for things like configuration files or other things a human might read or edit. Since the goal is to get it working in the full Notes client and not Nomad, Java is on the table, but Java - for dumb historical reasons - has no proper built-in JSON library. However, as of 12.something HCL shunted IBM Commons down to the global classpath in order to support the "share Java design elements between XPages and agents" feature. Among many other things, IBM Commons includes a JSON library that can suit. I wrote a post almost a decade ago talking about this library and its limited nature, but it's nonetheless less limited than the LotusScript classes, and it's up to the task. There are a couple ways to go about this, depending on your needs, but for now I'll just cover the basic case here of "I have a string of JSON and want to format it".

Pretty-Printing JSON in Notes Client and Domino  

By Daniel Nashed | 7/29/24 3:20 AM | Development - Notes / Domino | Added by Roberto Boccadoro

The Lotus Script class for reading and writing JSON is that easy. There are not many examples and some functionality is missing. JSON can be either condensed without any new lines and indentation. That's great when you use it for back-end processing or REST services. Why is pretty printing important But in some cases you need pretty formatted JSON. Specially when you want to maintain it manually and extend it. For example for Domino OTS JSON files :-) When you use JSON based configuration pretty printed JSON is very helpful. Condensed JSON is also difficult to check into Git. Everything looks modified when it is a single line.

Developing for Research  

By Paul Withers | 7/25/24 1:30 AM | Development - Notes / Domino | Added by Roberto Boccadoro

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 This has covered some degree of coding in a variety of languages and frameworks. But there are significant differences between traditional product-focused development and development for research. And it’s useful to highlight those differences, because it takes a certain mind-set and skill-set.

Mindoo - Demo application for Domino JNA Views to play with  

By Karsten Lehmann | 7/18/24 11:42 AM | Development - Notes / Domino | Added by Serdar Basegmez

Today I attended the "Developer Variety Hour" webinar of OpenNTF and did a demo of the new Virtual View API of Domino JNA. I built a small web application that combines a Sunburst diagram (taken from the D3 website, enhanced by a training session with Anthropics Claude AI chat :-) ) with a categorized view, built on top of a Bootstrap 5 table.

Multiple emails control for Xpages  

By Patrick Kwinten | 6/20/24 3:29 AM | Development - Notes / Domino | Added by Roberto Boccadoro

For a project I received a request to enable to enter multiple emails in a field. These emails are not all registered in the Names & Address Book (NAB) but they come from a 'concurrent' email system e.g. helpdesk@domain.com or groupXYZ@domain.com so a standard names picker was no option. I feared already a support nightmare without any entry validation, because the field was going to be used to send notifications. Here is the list of requirements: Easy to write email. Display of default value(s) or default list options (provided by the application). Support to enter multiple emails. Easy to remove email(s). Validation of the provided emails.

Mindoo - The pain of reading data as a Domino developer - and solutions  

By Karsten Lehmann | 6/20/24 3:04 AM | Development - Notes / Domino | Added by Serdar Basegmez

On my endless path of reinventing the wheel regarding Domino APIs, my latest adventure has once again led me to find efficient and powerful ways to query Domino data. For many years, this topic has been a pain point for me. Back in the IBM Design Partner program, I wrote many entries in the discussions database, asking IBM core development for better and faster ways to read Domino data.

NoSQL schema design  

By Stephan Wissel | 6/10/24 1:31 PM | Development - Notes / Domino | Added by Roberto Boccadoro

NoSQL schema design - A question that pops up frequently in developer discussions is 'how to structure your data in a NoSQL way?'. To shed a light on this, we have a look at the approach invented 50 years ago and still an all time favorite.

XPages JEE 3.0  

By Jesse Gallagher | 6/10/24 1:29 PM | Development - Notes / Domino | Added by Roberto Boccadoro

Today, I uploaded the release version of 3.0.0 of the XPages Jakarta EE Support project. It's been proving stable in my use since the last beta, and so I think this is as good a time as any to release it properly.

Classic Domino and HTML 5  

By Jesper Kiær | 5/28/24 8:21 AM | Development - Notes / Domino | Added by Roberto Boccadoro

Sometimes a simple web application based on classic Domino is in place. However Domino has not been updated in this area for many years. If you create a form and use it on the web it will create a very old HTML document type. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> In 2024 you probably want to use HTML 5 and some of the newer features in it. Fortunately you can change it to HTML 5.

XPages JEE 3.0 Beta 4  

By Jesse Gallagher | 5/23/24 10:43 AM | Development - Notes / Domino | Added by Roberto Boccadoro

Earlier today, I uploaded beta 4 of XPages JEE 3.0 to GitHub. I've been taking a slow approach to this release due to its "breaking changes" nature, but I think it's just about ready for release. Domino 14 Like previous betas, this release requires Domino 14 (and Notes 14 for development), since it moves to a baseline of Jakarta EE 10, which in turn requires Java 11. Doing this let me get rid of some extra shim code that was needed to support both Domino 14 and previous versions, and also let me move to some newer language constructs. If you're interested in the sorts of things that the new versions of Java brought, check out the OpenNTF webinar from April, where I talked about just that.

Quick Tip: Did you know? DDE uses .gitignore  

By Oliver Busse | 5/23/24 10:42 AM | Development - Notes / Domino | Added by Roberto Boccadoro

ne thing I recently found out is that Domino Designer respects the .gitignore of your on-disk-project (ODP). In general it’s obviously helpful that this file is respected in your local repositories and with your favourite git client. I wasn’t aware though that Domino Designer also uses this file to decide whether or not to import a resource from the ODP into the NSF.

Development Containers - the fine print  

By Stephan Wissel | 5/13/24 4:30 AM | Development - Notes / Domino | Added by Roberto Boccadoro

Development Containers are supposed to liberate your development environment from a specific local installation, like container technology liberated your runtimes (a.k.a YAMLed them into Docker or Kubernetes). Development != Runtime Containerization for development has some overlap and quite some difference to containerization for production:

Adventures in AI  

By Paul Withers | 5/2/24 9:23 AM | Development - Notes / Domino | Added by Roberto Boccadoro

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.

My slides from Engage 2024  

By Heiko Voigt | 4/30/24 2:15 AM | Development - Notes / Domino | Added by Oliver Busse

Hello, here are my slides from Engage about Building an app with ChatGPT using the HCL Domino REST APIs.

Running MkDocs in a container  

By Oliver Busse | 4/18/24 11:40 PM | Development - Notes / Domino | Added by Roberto Boccadoro

I recently used mkdocs again, the lovely documentation framework which comes with several useful plugins, nice styling and built-in PDF and static website generation. Sometimes it is a bit tricky to get everything installed on your machine to make in running, such as Python 3 and several add-ons, so you may want to run it inside a container.

Maven build with multiple Java versions   

By Stephan Wissel | 4/17/24 4:02 AM | Development - Notes / Domino | Added by Roberto Boccadoro

Imagine, you are tasked with maintaining a Java application that needs to run on more than one Java version. You want to ensure that it compiles, tests and builds on all of them. This is our story, buckle up, there are a few moving parts