PRESENTATION
Developer Variety HourJESSE GALLAGHERCTO - I KNOW SOME GUYS
IP MANAGER - OPENNTF
HTTPS://FROSTILLIC.US@JESSE@PUB.FROSTILLIC.USAgendaOpen Source Involvement
Guests!
Karsten Lehmann: Domino JNA
Paul Withers: Bali Unit
Alec Vincent Bardiano: DRAPI Node.JS and Go SDKs
Me!
Domino JNX
Domino Rust Addin
XPages Jakarta EE
HCL's Open-Source NTFs
Q&AOPEN SOURCE INVOLVEMENT

Involvement(Almost) anything helps!
Code contributions
Documentation contributions
Writing issues
Answering issues
Discord chat
Blog posts
VideosParticipating on OpenNTF
Post a snippet: https://openntf.org/XSnippets.nsf
Create a full project
Post on a project page
Join Discord: https://openntf.org/discord

Participating on GitHub
Upload any of your code
Fork an existing project
Make a PR with your changes
Post/reply to issues
Watch and star repositories (just sort ofnice)
Follow or sponsor individual developers

Forking and Pull Requests

Very intimidating at rst!
This process is expected and encouraged
It's hard (though technically possible) to go wrong
Larger projects have procedures and contribution guidelines - read up on themrst
Sometimes they'll also have automatic build actions, which can help prevent
troubleSearch "openntf github" on YouTube for the webinar from 2021

fi

fi

Forking and Pull Requests

Many products' documentation is on
GitHub lately
They are very receptive to x/
improvement pull requests
Great way to get started with PRs: x
a typo, improve some formatting, etc.

fi(still feel free to bug HCL for larger
xes, though)fifi

HCL and Documentation

GUESTS!

Domino JNA

Featuring Karsten Lehmannhttps://github.com/klehmann/domino-jna/

Bali Unit for LotusScript

Featuring Paul Withers
https://openntf.org/main.nsf/project.xsp?r=project/
Bali%20Unit%20for%20LotusScript

SDKs for DRAPI
Featuring Alec Vincent BardianoNode.JS: https://github.com/HCL-TECH-SOFTWARE/domino-rest-sdknodeNode-RED: https://github.com/HCL-TECH-SOFTWARE/domino-restsdk-nodered
Go: https://github.com/HCL-TECH-SOFTWARE/domino-rest-sdk-go

OTHER PROJECT GRAB BAG

Domino JNX
https://github.com/HCL-TECH-SOFTWARE/domino-jnx
New Java wrapper for the C API
Based originally on Domino JNA, though it's evolved a bit di erently
Primarily used for DRAPI, but is an independent projectff

Used for my NSF File System projects, likely to go to NSF ODP andXPages JEE tooDomino JNX
return view.query().selectByKey(path, true).firstId().flatMap(database::getDocumentById).orElseGet(() -> {Document doc = database.createDocument();
doc.replaceItemValue(ITEM_PARENT, path);doc.replaceItemValue("$$TITLE", fileName);
return doc;});Domino Addin in Rust
https://github.com/HCL-TECH-SOFTWARE/Domino-Rust-JVM-Addin
Shows how to use Rust to write a Domino addin - calling some C
methods - that then loads up a JVM
Can be used to write bootstrap something similar to DRAPI
Can also be used as the basis for a Rust-only addin, or to load up
other code

Domino Addin in Rust#[link(name = "notes")]
extern "C" {// osfile.h
fn OSGetDataDirectory(retPathName: *mut i8);}
pub fn data_dir() -> PathBuf {let data_dir: PathBuf;
unsafe {let mut ret_path_name = vec![0; MAXPATH];
let ptr = ret_path_name.as_mut_ptr() as *mut i8;
OSGetDataDirectory(ptr);
data_dir = Path::new(CStr::from_ptr(ret_path_name.as_ptr()).to_str().unwrap()).to_owned();}return data_dir;}

XPages Jakarta EE
https://github.com/OpenNTF/org.openntf.xsp.jakartaee/
Recently hit version 3.0
Breaking changes (hopefully the only ones for a long while)
Moved to Jakarta EE 10 as a baseline (new features!)
Requires Domino 14 (should be the same baseline for JEE 11 too)Open-Source NTFs
https://opensource.hcltechsw.com/
Search for "ntf"
Not exactly active projects, but ofinterest for parts or for distributing
variants
They used to be in a quasiopen state