Notes & Domino 14 - missing the Notes.jar? It's still there  

By Oliver Busse | 12/8/23 2:09 AM | Development - Notes / Domino | Added by Roberto Boccadoro

Today HCL released version 14 of Notes and Domino. Despite I tried the beta version in the EAP I wasn't aware that the Notes.jar was relocated. In my test VM I installed the new version just to find my Eclipse projects failing to build due to my variable NOTES_HOME not pointing to the correct location anymore. So, if you also got your little WTF moment, keep cool and relocate your variables to <NotesProgramDir>/ndext/notes.jar now.

Overcoming Domino's Agent Scheduling Limitations with JavaAddin  

By Dmytro Pastovenskyi | 10/30/23 2:16 AM | Development - Notes / Domino | Added by Roberto Boccadoro

If you're frustrated with Domino's limitations on scheduling agents to run more frequently than once every 5 minutes, you're not alone. As a programmer, you understand the need for flexibility and control in your applications. In this article, we'll discuss a practical solution: creating a JavaAddin for Domino that can trigger agents at shorter intervals, allowing you to gain more fine-grained control over your scheduled tasks.

XPages JEE 2.14.0  

By Jesse Gallagher | 10/28/23 4:39 PM | Development - Notes / Domino | Added by Oliver Busse

Today, I released version 2.14.0 of the XPages Jakarta EE Support project. As with the last few releases, this is primarily about bug fixes and compatibility as I prepare for the big switch in 3.0, but there are some notable, if small, feature additions.

Domino and JavaScript Development MasterClass Redux  

By Paul Withers | 10/4/23 5:21 AM | Development - Notes / Domino | Added by Roberto Boccadoro

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.

Continuing with HCL Domino in the IOT Space...  

By Heiko Voigt | 10/3/23 10:18 AM | Development - Notes / Domino | Added by Roberto Boccadoro

In the past weeks, I have extended my knowledge and demo equipment in the IoT Space using LoRaWAN Sensor, The Things Network Stack and Dragino Open Source Hardware. Today, I am running various outdoor and indoor LoRaWAN Gateways, multiple Sensors checking on air quality, temperature and moisture levels indoors as well as Soil moist outdoors and door/window open/close sensor on my network instances, collecting data in my private data lake.

The old dog and some fun tricks...  

By Heiko Voigt | 10/3/23 10:17 AM | Development - Notes / Domino | Added by Roberto Boccadoro

I really love to listen to my favorite radio stations on my laptop, I really do. And there's tons of software solutions out there to give you a streaming radio client on all operating systems. But - my main work environment still is a HCL Notes Client - and there wasn't an app for that use case, at least not that I was aware of. A couple of weeks back I stumbled across a JavaScript Library that finally made me build one: Howler.js.

Using OpenLog for logging/ debugging XPages – Kwintessential Notes  

By Patrick Kwinten | 10/3/23 2:09 AM | Development - Notes / Domino | Added by Roberto Boccadoro

Today I opened a database where a developer insists on writing almost all code in SSJS. A bit odd because OpenNTF Domino API is enabled and used in this particular application. I guess JAVA is still frightening. But because of SSJS you get unexpected behaviour which are difficult to catch in OpenLog.

The very useful little feature of a NotesItem  

By Jesper Kiær | 10/2/23 2:02 AM | Development - Notes / Domino | Added by Roberto Boccadoro

Sometimes there are these little things that you somehow do not notice ...until one day you do. The thing I stumbled on, is that the NotesItem has a property called "SaveToDisk". You can set whether a NotesItem should be saved to disk or not when a document is saved,

Designer Client in Nomad Web  

By Cormac McCarthy | 9/26/23 3:44 PM | Development - Notes / Domino | Added by Oliver Busse

One of the best things HCL have brought in over the previous few years have been really active early access and beta programs for releases. One that probably doesn’t get enough attention if the one for Nomad for Web Browsers. This year alone there’s been at least 8 different versions deployed to their Sandbox environment. (there may be more these are the versions I’ve used). It is the quickest way to see and give feedback on Domino Restyle updates.

Source Control is Coming – Again and Finally!  

By David Leedy | 9/26/23 9:58 AM | Development - Notes / Domino | Added by Oliver Busse

Yesterday at Collabsphere I was in a great session by Dan Dumont that was simply titled “Source Control in Designer”. Source control is nothing new to designer as we’ve had this for years. I think there are at least 6 episodes of NotesIn9 that either are dedicated or touch on source control.

XPages Elements Beyond the NSF  

By Paul Withers | 9/19/23 4:02 AM | Development - Notes / Domino | Added by Roberto Boccadoro

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.

New Tiny Project: Wink Chattiness Patch  

By Jesse Gallagher | 9/19/23 3:38 AM | Development - Notes / Domino | Added by Roberto Boccadoro

I've been using the Domino 14 betas for development for a while now, and one of the things that has driven me a little nuts is the way Wink spews a bunch of INFO-level logs to the server console when the XPages runtime initializes. You've probably seen it - this stuff: It goes on for a while like that. This isn't new with 14 as such - it's just that 14 now ships with Verse by default, and Verse uses the Wink distribution that came along with the Extension Library, and so now everyone sees this.

XPages JEE 2.13.0  

By Jesse Gallagher | 7/24/23 12:53 AM | Development - Notes / Domino | Added by Roberto Boccadoro

Today, I released version 2.13.0 of the XPages Jakarta EE Support project. Though there's not a single big banner feature, this one brings a number of good enhancements in a bunch of areas.

Deploy private npm packages into private containers using github actions  

By Stephan Wissel | 7/17/23 2:33 AM | Development - Notes / Domino | Added by Roberto Boccadoro

GitHub Actions are rapidly becoming my favorite CI environment. Their marketplace has an action for everything. Sometimes it takes a little trial and error before things work smoothly. This is one of that stories. Authentication is everything Imagine the following scenario: you have developed a set of private TypeScript (or JavaScript) packages and have successfully deployed them to the private GitHub npm registry under the name @myfamousorg/coolpackage - where myfamousorg must match the repository owner (org or individual). Now you want to use them in your application. That application shall be packed in a Container and made available in GitHub's private registry. All that automated using GitHub Actions.

Postman: The Crucial Tool for Any Microservice Developer  

By Paul Withers | 7/17/23 2:32 AM | Development - Notes / Domino | Added by Roberto Boccadoro

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.

Kicking the Tires on Domino 14 and Java 17  

By Jesse Gallagher | 6/5/23 2:28 AM | Development - Notes / Domino | Added by Roberto Boccadoro

As promised, HCL launched the beta program for Domino 14 the other day. There's some neat stuff in there, but I still mostly care about the JVM update. I quickly got to downloading the container image for this to see about making sure my projects work on it, particularly the XPages JEE Support project. As expected, I had a few hoops to jump through. I did some groundwork for this a while back, but there was some more to do. Before I get to some specifics, I'll mention that I put up a beta release of 2.13.0 that gets almost everything working, minus JSP. Now, on to the notes and tips I've found so far.

XPages JEE 2.12.0: JNoSQL Views and PrimeFaces Support  

By Jesse Gallagher | 5/29/23 12:36 AM | Development - Notes / Domino | Added by Roberto Boccadoro

Last week, I put up version 2.12.0 of the XPages JEE Support project. Beyond the usual fit-and-finish bits here and there, there are two main improvements in this release. Jakarta NoSQL Views Jakarta Faces and PrimeFaces

The Loose Roadmap for XPages Jakarta EE Support  

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

At Engage, HCL officially announced Java 17 in Domino 14 (I'm sure they announced other things too, but I have my priorities). This will allow me to do a lot in pretty much all of my projects, but it's particularly pertinent to XPages JEE. Currently, the project targets generally Jakarta EE 9, which came out in late 2020 and was "just" a switch from javax.* to jakarta.*, with no official new features. However, Jakarta EE 10 came out a year ago - in addition to bringing a raft of new features, it also bumped the minimum Java version to Java 11, pushing it outside of Domino's realm. Accordingly, I've had to hold off on a lot of major- and minor-version bumps in the XPages JEE project as new releases started being compiled for Java 11. Once V14 is out, though, I'll be able to move to the current JEE platform... at least until JEE 11 comes out next year and requires Java 21, anyway. So I've been working on how I'm going to approach this, and what I'm thinking is that I'll do it in two phases: first, a final 2.x release that provides Java 17/Domino 14 compatibility for existing components, and then a new 3.x breaking-changes release to bring in Jakarta EE 10 components.

In Development: Containerized Builds in NSF ODP  

By Jesse Gallagher | 5/2/23 2:04 AM | Development - Notes / Domino | Added by Roberto Boccadoro

Most of my active development happens macOS-side - I'll periodically use Designer in Windows when necessary, but otherwise I'll jump through a tremendous number of hoops to keep things in the Mac realm. The biggest example of this is the NSF ODP Tooling, born from my annoyance with syncing ODPs in Designer and expanded to add some pleasantries for working with ODPs directly in normal Eclipse. Over the last few years, though, the process of compiling NSFs on macOS has gotten kind of... melty. Apple's progressive locking-down of traditional native loading mechanisms and the general weirdness of the Notes package and its embedded non-JDK JVM have made things get a little weird. I always end up with a configuration that can work, but it's rough going for sure.

XPages JEE 2.11.0 and the Javadoc Provider  

By Jesse Gallagher | 4/21/23 4:11 AM | Development - Notes / Domino | Added by Roberto Boccadoro

Yesterday, I put two releases up on OpenNTF, and I figure it'd be worth mentioning them here. The first is a new version of the XPages Jakarta EE Support project. As with the last few, this one is mostly iterative, focusing on consolidation and bug fixes, but it added a couple neat features. The second one is a new project, the XPages Javadoc Provider. This is a teeny-tiny project, though, not even containing any Java code.

Creating V2 style attachments  

By Andre Guirard | 4/15/23 4:59 PM | Development - Notes / Domino | Added by Oliver Busse

I thought to try attaching the files to a hidden rich text item — one that’s not on the form — and then deleting the rich text item, leaving just the attachments. But LotusScript is too smart for that — when you delete rich text items it also deletes the $FILE items to which they refer.

Debugging program crashes with gdb on Linux  

By Daniel Nashed | 4/10/23 9:37 AM | Development - Notes / Domino | Added by Roberto Boccadoro

This bugged me for a while because I had no idea what was happening. One of my OpenSSL-based tools in C crashed once in a while. I was only able to find out once wrote my own small tool to check the server listener of my other application. The crash happened very intermittently in different places when I opened and closed the connection very quickly. Adding a delay of 1 ms stopped the crash. But if you are running a service on the internet with port scanners around, you better find out in detail. It turned out to be the SIGPIPE event causing my program to terminate. But the interesting part is how I found out about the crash.

Categorised view problem in Domino Nomad Web 1.07  

By Sean Cull | 4/3/23 5:54 AM | Development - Notes / Domino | Added by Oliver Busse

We upgraded some servers to nomad Web 1.07 over the weekend but had to revert to 1.06 after a bug appeared. On first inspection it looked like a reader / author field issue but it was not. View robustness, an absolutely fundamental requirement, seem to be challenging.

Quick Tip: Stashing Log Files From Domino Testcontainers  

By Jesse Gallagher | 3/29/23 3:55 AM | Development - Notes / Domino | Added by Roberto Boccadoro

I've been doing a little future-proofing in the XPages Jakarta EE project lately and bumped against a common pitfall in my test setup: since I create a fresh Domino Testcontainer with each run, diagnostic information like the XPages log files are destroyed at the end of each test-suite execution.

Read Attachment Files without Writing to Disk  

By Andre Guirard | 3/13/23 3:13 AM | Development - Notes / Domino | Added by Roberto Boccadoro

Someone sent me a link to this “domino idea” asking for the ability to read file data from attachments in Notes documents without “extracting the file” to disk, since ECLs might not always let you do that. I never like to say there’s no way to do that, so the question prompted me to create an answer. This code uses DXL — it exports the document, then searches the exported data for the file data objects, which are encoded in base64. Fortunately it’s just the plain file data without CD record headers or the like, so it’s easy to convert to a NotesStream containing the raw data — or to interpret that data as text in a specified character set.

Moving Relative Date Text Client-Side  

By Jesse Gallagher | 3/13/23 3:11 AM | Development - Notes / Domino | Added by Roberto Boccadoro

One of my main goals in the slow-moving OpenNTF home-page revamp project I'm doing (which I recently moved to a public repo, by the way) is to, like on this blog, keep things extremely simple. There's almost no JavaScript - just Hotwire Turbo so far - and the UI is done with very-low-key JSP pages and tags.

Bali Unit Testing Framework Videos  

By Paul Withers | 3/1/23 4:58 PM | Development - Notes / Domino | Added by Oliver Busse

Two weeks ago four videos were posted on OpenNTF’s YouTube channel walking through the functionality of the Bali Unit testing framework.These are intended to give you all the information you need to use the test suite, although full documentation is available in the repo, at https://openntf.github.io/bali-unit/.

TOTP and vert.x  

By Stephan Wissel | 2/7/23 9:13 AM | Development - Notes / Domino | Added by Roberto Boccadoro

TOTP and vert.x - Time-based one-time passwords (TOTP) are a common security feature in Identity Providers (IdP). There are use cases beyond IdP, mine was 'Understanding what it takes'). TOTP interaction You have two phases: enrollment and use. During enrollment a secret is generated and (typically) presented as QR Code. A user points one of the many Authenticator apps to it and gets a numeric code that changes once a minute. When you use it, you pick the current number and paste it into the provided field. The backend validates the correctness with some time leeway. What it is not Typically when enrolling you also get recovery codes, sometimes called scratch codes. They are NOT part of TOTP and implementation is site specific and not standardized. An implementer might choose to check your recovery codes when your TOTP fails or provide a separate interaction using those. The initial confirmation, is actually the first instance of "use" and one could have a successful enrollment without it. This is depending on the implementation. It isn't foolproof. An attacker could trick you into typing your TOTP code into a spoofed form or just hijack your session (cookie). That's why responsible web apps run a tight security with CSP and TLS (and once browser support is better Permission Policy)

XAgents to Jakarta REST Services  

By Jesse Gallagher | 2/6/23 2:03 AM | Development - Notes / Domino | Added by Oliver Busse

For a good long time now, XAgents have been one of the common ways to do non-HTML output in an XPages environment - JSON, mostly. I think the technique was codified and the term coined by Stephan Wissel back in 2008 and the idea has been the same since. Effectively, an XAgent lets you write a Servlet but with a bit more scaffolding. Though XPages has a path to use Servlets officially, that method is more out-of-the-way than XAgents and doesn't (without further hoop jumping) give you some niceties like sessionAsSigner.

The Pront statement [sic]  

By Andre Guirard | 2/3/23 4:18 AM | Development - Notes / Domino | Added by Roberto Boccadoro

The LotusScript debugger isn’t the simplest thing in the world to use, especially when debugging form event code, where the fact of the debugger grabbing focus may change what happens. You can put Print statements in LotusScript to do a less impactful debug, but these are hard to read and you can’t tell which messages are new — or which are repeats of the last message. For a project I’m working on now, I wanted something easier to use. So I present the Pront Console. This is an NSF you download and install on your client, with a bit to put in your applications to make the Pront statement available.