Skip to content

Index

Framework App to Web App: Part Five - Home Page

So it's time to start with the application. Any development - team or individual - should use source control. My usual approach is to create the repository in GitHub (or your preferred repository), then clone it locally. A README is best practice of course. And I'll be creating two subfolders, "webapp" and "bruno" - because bruno allows me to store the REST service collection and environment in the github repo.

Framework App to Web App: Part Four - DRAPI

Domino REST API is (in my admittedly somewhat biased opinion) the best easy method for creating a secure REST API into Domino. If you have very strong Java skills, an OSGi plugin using JAX-RS is the standard supported way. If you have good Java skills, Jesse Gallagher's JakartaEE project is the community approach. But even if you have those skills, Domino REST API may provide what you need. It certainly provides what I need for this project.

Framework App to Web App: Part Three - Frameworks and the Internet

A Brief History of Web Development

Until now, the series has focused on XPages. That's understandable considering my previous series that this is inspired by. However, recently it's become apparent that much of this series is relevant to a much wider audience than just XPages developers. Most web developers are used to developing with a specific framework. That's understandable considering the history of the last 20+ years. But that means this series is relevant to a much wider audience than HCL Domino developers using the JSF-based XPages framework.

XPages to Web App Revisited: Part One - Introduction

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.

Understanding Tags and Renderers

There are a few people in software development who have shaped my career by their approaches. Three of those whom I'm particularly glad to have known are Nathan T. Freeman, Tim Tripcony and Jesse Gallagher. Although Tim and Nathan are no longer with us, I am fortunate enough to have experienced sessions by and with them, got to know the open source code and videos they created, and worked with them on open source projects. They were brilliant developers, willing to spend time with those who wanted to learn and give back. Fortunately, I'm still able to draw on the knowledge of Jesse and the XPages community should be rewarding him for his continued work. And when you encounter such clever people, it's foolish not to want to learn all you can.

Domino REST API Proxy Problems

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. Shortly after joining HCL I wrote a blog post on troubleshooting support. If you didn't read that blog post at the time or need a refresher, it's probably one of the most important blog posts I've ever written and most of what I covered in that blog post was relevant to solving this problem. Coincidentally, what I wrote about understanding in my most recent blog post was also crucial.

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.