SlideShare a Scribd company logo
OPENNTF WEBINARS
Water Cooler Talks: A Look into a Developer's Workbench
AGENDA
• Welcome – Graham Acres
• Howard Greenberg
• Jesse Gallagher
• Serdar Basegmez
• Questions – Graham Acres
ASKING QUESTIONS
• First Question – Will this be recorded?
• Yes, view on YouTube!!!
• https://www.youtube.com/user/OpenNTF
• Use the Questions Pane in GoToWebinar
• We will get to your questions at the end of
the webinar
• The speakers will respond to your questions
verbally
• (not in the Questions pane)
• Please keep all questions related to the
topics that our speakers are discussing!!!
• Unrelated Question => post at:
• http://openntf.slack.com/
THANKS TO THE OPENNTF SPONSORS
• HCL made a significant contribution to help our
organization
• Funds these webinars!
• Contests like Hackathons
• Running the organization
• Prominic donates all IT related services
• Cloud Hosting for OpenNTF
• Infrastructure management for HCL Domino and Atlassian
Servers
• System Administration for day-to-day operation
THIS IS OUR COMMUNITY
• Join us and get involved!
• We are all volunteers
• No effort is too small
• If your idea is bigger than you can do on your own, we
can connect you to a team to work on it
• Test or help or modify an existing project
• Write guides or documentation
• Add reviews on projects / stars on Snippets
HOWARD GREENBERG
• Consultant
• Notes client
• Domino and XPages apps
• Java
• Use the following tools:
• Domino Designer
• SourceTree – client app to manage the process
• BitBucket – repository
• Swiper – makes this process bearable
BITBUCKET – GIT VERSION CONTROL
• Free for up to five users
• Includes JIRA – issue tracking software
• Paid Account
• $3 per user per month
• Private or public repositories
• Source code is stored in cloud
• Safe from ransomware
• Version tracking
• Branching – supports master, development, maintenance
• Optional – you can use just a local (disk) storage or setup your
own BitBucket Server
SOURCETREE
• Local GIT client
• GIT is the version control system used by BitBucket
• Can be command line
• SourceTree provides a nice GUI
• Free
• Don’t have to learn the GIT command line syntax
ADVANTAGES
• Version Control
• Easy to rollback to other versions
• Safe code storage
• Simplifies branching
• Production
• Development
• Testing
• Insert bug fixes
• Does NOT do merging (there are tools for that if
needed)
WAYS TO USE…
• In Designer there are two instances of the design
• An NSF that can replicate, copy, etc.
• Make design changes to the NSF
• This is in your Notes Data directory
• The NSF is “synched” with another Eclipse project
• Called the “On-Disk” project
• This project is what is under source control
• There is a directory on your disk that is monitored by
GIT/SourceTree
CHANGES GO BOTH WAYS
• Changes go from NSF to the On-Disk Project
• Then these changes are “committed” and “pushed” to
BitBucket
• Changes can also be pulled to the local storage (On-
Disk project) and then to the NSF
• The local NSF (you want to use a local nsf) can then
replicate with a server based NSF for testing
• Or, use the template process to move the changes to a
test/production nsf
• NOTE: Only Design elements are stored in BitBucket,
never any data!
TIPS
• Use Swiper – OpenNTF project
• Gets rid of nuisance changes
• Only has to be installed on Designer not server
• Right click on Database to add Swiper to project
• https://openntf.org/main.nsf/project.xsp?r=project/Swiper
/summary
• Deselect Binary DXL in Domino Designer properties
DEMO
Jesse Gallagher
@Gidgerby - http://frostillic.us
MY TOOLCHAIN
• macOS + Notes installation
• Eclipse
• Plug-in Development Environment
• Wild Web Developer
• XPages SDK
• Maven
• Plus Tycho, when working with Domino
• Open Liberty for JEE apps and XPages dev
• VS Code (sometimes)
• IntelliJ IDEA (for mobile apps)
• Windows + Designer via RDP
• Jenkins
EXAMPLE WORKSPACE
XPAGES DEV EXPERIENCE
• With care, a webapp with the XPages Runtime
project is a “good enough” representation
• The app’s code was made portable and picks
up critical details from the server context
• https://frostillic.us/blog/posts/2020/6/18/the-
runtimeenvironment-idiom
• Quicker turnaround with any size plugin change,
but requires in-depth knowledge if things go
awry
• The NSF ODP Tooling provides XSP autocomplete,
validation, and descriptive tooltips
PLUGIN DEV EXPERIENCE
• When working with OSGi plugins for Domino, I use the
XPages SDK to run the plugins from my Mac Eclipse
workspace
• When pairing with XPages-side Java code, I often add
the built update site on the Mac to Designer’s Target
Platform
• This can make Designer even more unstable if you’re
referencing a network drive
• I’m trying to need to do this less over time
CI/CD PIPELINE
• Jenkins server with a Domino runtime available
• It builds each branch (one at a time, to avoid
runtime collisions)
• Tycho runs a suite of compile-time tests for the
backend code
• Generates a ZIP of the OSGi plugins, NTFs, and
instructions and makes it available alongside a
recent commit list
• Also deploys the .war variants to Open Liberty
instances on Domino for immediate access and
user testing
SERDAR BASEGMEZ
Developi Information Systems, London
Blog: LotusNotus.com / Twitter: @serdar_basegmez
TODAY’S SPECIAL ON MY WORKBENCH
• RESTful API for Domino databases
• Visit speakerdeck.com/sbasegmez
• Designing JAX-RS services for Domino applications
• OSGi plugins based on Apache Wink servlets.
• Sample applications:
• Node.js front-end, accessing Domino data
• Customer-facing interfaces (PHP Website, native
mobile applications, etc.) interacting internal
systems
DEVELOPMENT ENVIRONMENT
Using… for…
Eclipse IDE on Mac [Neon] OSGi plugin development
OpenNTF XPages SDK Plugin Help to configure Eclipse PDE for Domino environment
HCL Domino Designer on Windows NSF design, sandboxing and testbed
HCL Domino Server 10.x / 11.x on CentOS Development, testing, staging and deployment
Paw, Postman, Node.js scripts Testing (functional, scalability, performance, etc.)
Stoplight Studio, Ulysses Documentation
SourceTree + Bitbucket/Github Source Control
OpenNTF Domino API Plugin Civilised way to use Java for Domino
OpenNTF XLogback Plugin Logging
DEVELOPMENT ENVIRONMENT
Using… for…
Eclipse IDE on Mac [Neon] OSGi plugin development
OpenNTF XPages SDK Plugin Help to configure Eclipse PDE for Domino environment
HCL Domino Designer on Windows NSF design, sandboxing and testbed
HCL Domino Server 10.x / 11.x on CentOS Development, testing, staging and deployment
Paw, Node.js scripts Testing (functional, scalability, performance, etc.)
Stoplight Studio, Ulysses Documentation
SourceTree + Bitbucket/Github Source Control
OpenNTF Domino API Plugin Civilised way to use Java for Domino
OpenNTF XLogback Plugin Logging
Today’s focus
THE ART OF ECLIPSE CONFIGURATION…
• Using Eclipse vs Domino Designer
• Better version, better tooling, more integrated
• Configuring Eclipse to develop for Domino can be tricky!
• This is the key step for efficient development.
• I found my way among many possibilities
THE ART OF ECLIPSE CONFIGURATION…
• We aim to…
• Compile successfully (Accessing domino packages)
• Deploy using PDE (Run on Server)
• Run locally (Manual/automated unit testing)
• Overall…
• JVM to be used (Notes or Domino)
• Target Platform to be configured
• File access to the Domino needed
• Notes setup is nice to have
THE ART OF ECLIPSE CONFIGURATION…
• Target Platform is the key…
• “The target platform specifies the set of bundles
used to compile and build against within the
Eclipse PDE (plugin development environment).”
(Eclipse Wiki)
• Java API for Domino is also needed [Notes.jar]
• Build a plugin or add it to the JRE
• Pain in the neck!
Compiling Successfully
THE ART OF ECLIPSE CONFIGURATION…
• XPages SDK will configure the Domino OSGi platform
to deploy your plugins directly into Domino Server.
Domino ServerEclipse IDE
Selected Projects
[Eclipse Workspace]
Target Platform
[Eclipse Settings]
XPages SDK
Temporary Configuration
for the Domino OSGi
[pde.launch.ini]
Deploy using PDE
Points
THE ART OF ECLIPSE CONFIGURATION…
• Classical Scenario
Eclipse IDE and Domino Server on Windows
Target Platform PluginsEclipse Workspace
Domino OSGiEclipse IDE
OpenNTF XPages SDK Configuration
THE ART OF ECLIPSE CONFIGURATION…
• Alternative Scenario
• Eclipse on Mac, Domino on Linux VM
Domino Server on VMEclipse IDE on Mac
OpenNTF XPages SDK Configuration
Target Platform PluginsEclipse Workspace
Domino OSGiEclipse IDE
Target Platform Plugins
THE ART OF ECLIPSE CONFIGURATION…
• Eclipse IDE can run Java code utilizing Domino Java API
• More practical than restarting HTTP every time
• Quick testing for your business logic
• Unit testing for your API
• Difficulties:
• XSP / HTTP resources will not be available
• Domino classes needs native libraries
• Difficult to configure (especially on Mac)
• Some capabilities might not work well
Run Locally
THE ART OF ECLIPSE CONFIGURATION…
• Run Configurations might be customized on Mac
Run Locally
THE ART OF ECLIPSE CONFIGURATION…
• You may even use OpenNTF Domino API
Run Locally
PRODUCTION AND DEPLOYMENT
• Deploy to Production using Update Site replication
• It works well if you release less frequently…
• Feature-Update Site deployment might be tricky
• If you touch plugin.xml, test on staging.
• Sometimes, small differences between production and
testing might become nasty
• There are ways to automate this process as well.
FURTHER ENHANCEMENTS
• Maven / p2 repositories
• Automated build, CI/CD pipelines
• Headless Designer
• Docker Runtime
CHALLENGES
• Using Eclipse on Mac is a challenge!
• Notes for Mac is “different”
• Obviously, no Designer / Domino on Mac
• Even EOL differences needs to be considered
• Domino Upgrades
• Target platform needs to be updated on upgrades
• If you use custom target platform, that’d be an issue
• Document your setup on every step…
NEXT WEBINAR
• September 17, 2020
• John Curtis from HCL will discuss Domino Query
Language
• Signup at https://openntf.org/webinars
QUESTIONS?
Use the GoToWebinar Questions Pane
Please keep all questions related to the
topics that our speakers are discussing!!!
Unrelated Question => post at:
http://openntf.slack.com/

More Related Content

What's hot

OpenNTF Webinar, May 19, 2020
OpenNTF Webinar, May 19, 2020OpenNTF Webinar, May 19, 2020
OpenNTF Webinar, May 19, 2020
Howard Greenberg
 
September-2021 OpenNTF Webinar: Domino Online Meeting Integration (DOMI)
September-2021 OpenNTF Webinar: Domino Online Meeting Integration (DOMI)September-2021 OpenNTF Webinar: Domino Online Meeting Integration (DOMI)
September-2021 OpenNTF Webinar: Domino Online Meeting Integration (DOMI)
Howard Greenberg
 
Git and GitHub for Documentation
Git and GitHub for DocumentationGit and GitHub for Documentation
Git and GitHub for Documentation
Anne Gentle
 
Provisioning environments. A simplistic approach
Provisioning  environments. A simplistic approachProvisioning  environments. A simplistic approach
Provisioning environments. A simplistic approach
Eder Roger Souza
 
OpenNTF Webinar Series: DQL with John Curtis September 2020
OpenNTF Webinar Series: DQL with John Curtis September 2020OpenNTF Webinar Series: DQL with John Curtis September 2020
OpenNTF Webinar Series: DQL with John Curtis September 2020
Graham Acres
 
Codifying the Build and Release Process with a Jenkins Pipeline Shared Library
Codifying the Build and Release Process with a Jenkins Pipeline Shared LibraryCodifying the Build and Release Process with a Jenkins Pipeline Shared Library
Codifying the Build and Release Process with a Jenkins Pipeline Shared Library
Alvin Huang
 
Git 101 - Crash Course in Version Control using Git
Git 101 - Crash Course in Version Control using GitGit 101 - Crash Course in Version Control using Git
Git 101 - Crash Course in Version Control using Git
Geoff Hoffman
 
Hnd201 Building Ibm Lotus Domino Applications With Ajax Plugins
Hnd201 Building Ibm Lotus Domino Applications With Ajax PluginsHnd201 Building Ibm Lotus Domino Applications With Ajax Plugins
Hnd201 Building Ibm Lotus Domino Applications With Ajax Plugins
dominion
 
CI is dead, long live CI
CI is dead, long live CICI is dead, long live CI
CI is dead, long live CI
Frédéric Lepied
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to Docker
Jirayut Nimsaeng
 
Testing with Docker
Testing with DockerTesting with Docker
Testing with Docker
toffermann
 
October OpenNTF Webinar - What we like about Domino/Notes 12, recommended new...
October OpenNTF Webinar - What we like about Domino/Notes 12, recommended new...October OpenNTF Webinar - What we like about Domino/Notes 12, recommended new...
October OpenNTF Webinar - What we like about Domino/Notes 12, recommended new...
Howard Greenberg
 
Codecoon - A technical Case Study
Codecoon - A technical Case StudyCodecoon - A technical Case Study
Codecoon - A technical Case Study
Michael Lihs
 
At Your Service: Using Jenkins in Operations
At Your Service: Using Jenkins in OperationsAt Your Service: Using Jenkins in Operations
At Your Service: Using Jenkins in Operations
Mandi Walls
 
Deploying Apps on OpenStack
Deploying Apps on OpenStackDeploying Apps on OpenStack
Deploying Apps on OpenStack
Anne Gentle
 
Dockercon 2018 EU Updates
Dockercon 2018 EU Updates Dockercon 2018 EU Updates
Dockercon 2018 EU Updates
Ajeet Singh Raina
 
Get the best out of Bootstrap with Bootstrap4XPages - Engage 2014
Get the best out of Bootstrap with Bootstrap4XPages - Engage 2014Get the best out of Bootstrap with Bootstrap4XPages - Engage 2014
Get the best out of Bootstrap with Bootstrap4XPages - Engage 2014
Mark Leusink
 
Mini-training: Let’s Git It!
Mini-training: Let’s Git It!Mini-training: Let’s Git It!
Mini-training: Let’s Git It!
Betclic Everest Group Tech Team
 
The XPages Mobile Controls: What's New in Notes 9.0.1
The XPages Mobile Controls: What's New in Notes 9.0.1The XPages Mobile Controls: What's New in Notes 9.0.1
The XPages Mobile Controls: What's New in Notes 9.0.1
Teamstudio
 
JUC Europe 2015: Scaling Your Jenkins Master with Docker
JUC Europe 2015: Scaling Your Jenkins Master with DockerJUC Europe 2015: Scaling Your Jenkins Master with Docker
JUC Europe 2015: Scaling Your Jenkins Master with Docker
CloudBees
 

What's hot (20)

OpenNTF Webinar, May 19, 2020
OpenNTF Webinar, May 19, 2020OpenNTF Webinar, May 19, 2020
OpenNTF Webinar, May 19, 2020
 
September-2021 OpenNTF Webinar: Domino Online Meeting Integration (DOMI)
September-2021 OpenNTF Webinar: Domino Online Meeting Integration (DOMI)September-2021 OpenNTF Webinar: Domino Online Meeting Integration (DOMI)
September-2021 OpenNTF Webinar: Domino Online Meeting Integration (DOMI)
 
Git and GitHub for Documentation
Git and GitHub for DocumentationGit and GitHub for Documentation
Git and GitHub for Documentation
 
Provisioning environments. A simplistic approach
Provisioning  environments. A simplistic approachProvisioning  environments. A simplistic approach
Provisioning environments. A simplistic approach
 
OpenNTF Webinar Series: DQL with John Curtis September 2020
OpenNTF Webinar Series: DQL with John Curtis September 2020OpenNTF Webinar Series: DQL with John Curtis September 2020
OpenNTF Webinar Series: DQL with John Curtis September 2020
 
Codifying the Build and Release Process with a Jenkins Pipeline Shared Library
Codifying the Build and Release Process with a Jenkins Pipeline Shared LibraryCodifying the Build and Release Process with a Jenkins Pipeline Shared Library
Codifying the Build and Release Process with a Jenkins Pipeline Shared Library
 
Git 101 - Crash Course in Version Control using Git
Git 101 - Crash Course in Version Control using GitGit 101 - Crash Course in Version Control using Git
Git 101 - Crash Course in Version Control using Git
 
Hnd201 Building Ibm Lotus Domino Applications With Ajax Plugins
Hnd201 Building Ibm Lotus Domino Applications With Ajax PluginsHnd201 Building Ibm Lotus Domino Applications With Ajax Plugins
Hnd201 Building Ibm Lotus Domino Applications With Ajax Plugins
 
CI is dead, long live CI
CI is dead, long live CICI is dead, long live CI
CI is dead, long live CI
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to Docker
 
Testing with Docker
Testing with DockerTesting with Docker
Testing with Docker
 
October OpenNTF Webinar - What we like about Domino/Notes 12, recommended new...
October OpenNTF Webinar - What we like about Domino/Notes 12, recommended new...October OpenNTF Webinar - What we like about Domino/Notes 12, recommended new...
October OpenNTF Webinar - What we like about Domino/Notes 12, recommended new...
 
Codecoon - A technical Case Study
Codecoon - A technical Case StudyCodecoon - A technical Case Study
Codecoon - A technical Case Study
 
At Your Service: Using Jenkins in Operations
At Your Service: Using Jenkins in OperationsAt Your Service: Using Jenkins in Operations
At Your Service: Using Jenkins in Operations
 
Deploying Apps on OpenStack
Deploying Apps on OpenStackDeploying Apps on OpenStack
Deploying Apps on OpenStack
 
Dockercon 2018 EU Updates
Dockercon 2018 EU Updates Dockercon 2018 EU Updates
Dockercon 2018 EU Updates
 
Get the best out of Bootstrap with Bootstrap4XPages - Engage 2014
Get the best out of Bootstrap with Bootstrap4XPages - Engage 2014Get the best out of Bootstrap with Bootstrap4XPages - Engage 2014
Get the best out of Bootstrap with Bootstrap4XPages - Engage 2014
 
Mini-training: Let’s Git It!
Mini-training: Let’s Git It!Mini-training: Let’s Git It!
Mini-training: Let’s Git It!
 
The XPages Mobile Controls: What's New in Notes 9.0.1
The XPages Mobile Controls: What's New in Notes 9.0.1The XPages Mobile Controls: What's New in Notes 9.0.1
The XPages Mobile Controls: What's New in Notes 9.0.1
 
JUC Europe 2015: Scaling Your Jenkins Master with Docker
JUC Europe 2015: Scaling Your Jenkins Master with DockerJUC Europe 2015: Scaling Your Jenkins Master with Docker
JUC Europe 2015: Scaling Your Jenkins Master with Docker
 

Similar to August Webinar - Water Cooler Talks: A Look into a Developer's Workbench

Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
Michael Lihs
 
Introduction to jenkins
Introduction to jenkinsIntroduction to jenkins
Introduction to jenkins
Abe Diaz
 
Build software like a bag of marbles, not a castle of LEGO®
Build software like a bag of marbles, not a castle of LEGO®Build software like a bag of marbles, not a castle of LEGO®
Build software like a bag of marbles, not a castle of LEGO®
Hannes Lowette
 
Production Ready WordPress #WPLDN
Production Ready WordPress #WPLDNProduction Ready WordPress #WPLDN
Production Ready WordPress #WPLDN
Edmund Turbin
 
Production Ready WordPress - WC Utrecht 2017
Production Ready WordPress  - WC Utrecht 2017Production Ready WordPress  - WC Utrecht 2017
Production Ready WordPress - WC Utrecht 2017
Edmund Turbin
 
Make It Cooler: Using Decentralized Version Control
Make It Cooler: Using Decentralized Version ControlMake It Cooler: Using Decentralized Version Control
Make It Cooler: Using Decentralized Version Control
indiver
 
The Architect Way
The Architect WayThe Architect Way
The Architect Way
Jan Jongboom
 
Desktop Intro
Desktop IntroDesktop Intro
Aiming for automatic updates - Drupal Dev Days Lisbon 2018
Aiming for automatic updates - Drupal Dev Days Lisbon 2018Aiming for automatic updates - Drupal Dev Days Lisbon 2018
Aiming for automatic updates - Drupal Dev Days Lisbon 2018
hernanibf
 
2020 oct zowe quarterly webinar series
2020 oct zowe quarterly webinar series2020 oct zowe quarterly webinar series
2020 oct zowe quarterly webinar series
Open Mainframe Project
 
TYPO3 Camp Stuttgart 2015 - Continuous Delivery with Open Source Tools
TYPO3 Camp Stuttgart 2015 - Continuous Delivery with Open Source ToolsTYPO3 Camp Stuttgart 2015 - Continuous Delivery with Open Source Tools
TYPO3 Camp Stuttgart 2015 - Continuous Delivery with Open Source Tools
Michael Lihs
 
Production ready word press
Production ready word pressProduction ready word press
Production ready word press
Edmund Turbin
 
OpenShift with Eclipse Tooling - EclipseCon 2012
OpenShift with Eclipse Tooling - EclipseCon 2012OpenShift with Eclipse Tooling - EclipseCon 2012
OpenShift with Eclipse Tooling - EclipseCon 2012
Steven Pousty
 
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...
Heiko Voigt
 
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit Europe
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit EuropeAutomation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit Europe
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit Europe
AppDynamics
 
DevOpsGuys - DevOps Automation - The Good, The Bad and The Ugly
DevOpsGuys - DevOps Automation - The Good, The Bad and The UglyDevOpsGuys - DevOps Automation - The Good, The Bad and The Ugly
DevOpsGuys - DevOps Automation - The Good, The Bad and The Ugly
DevOpsGroup
 
Build automation best practices
Build automation best practicesBuild automation best practices
Build automation best practices
Code Mastery
 
DockerCon 15 Keynote - Day 2
DockerCon 15 Keynote - Day 2DockerCon 15 Keynote - Day 2
DockerCon 15 Keynote - Day 2
Docker, Inc.
 
From XPages Hero to OSGi Guru: Taking the Scary out of Building Extension Lib...
From XPages Hero to OSGi Guru: Taking the Scary out of Building Extension Lib...From XPages Hero to OSGi Guru: Taking the Scary out of Building Extension Lib...
From XPages Hero to OSGi Guru: Taking the Scary out of Building Extension Lib...
Paul Withers
 
CT Software Developers Meetup: Using Docker and Vagrant Within A GitHub Pull ...
CT Software Developers Meetup: Using Docker and Vagrant Within A GitHub Pull ...CT Software Developers Meetup: Using Docker and Vagrant Within A GitHub Pull ...
CT Software Developers Meetup: Using Docker and Vagrant Within A GitHub Pull ...
E. Camden Fisher
 

Similar to August Webinar - Water Cooler Talks: A Look into a Developer's Workbench (20)

Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
 
Introduction to jenkins
Introduction to jenkinsIntroduction to jenkins
Introduction to jenkins
 
Build software like a bag of marbles, not a castle of LEGO®
Build software like a bag of marbles, not a castle of LEGO®Build software like a bag of marbles, not a castle of LEGO®
Build software like a bag of marbles, not a castle of LEGO®
 
Production Ready WordPress #WPLDN
Production Ready WordPress #WPLDNProduction Ready WordPress #WPLDN
Production Ready WordPress #WPLDN
 
Production Ready WordPress - WC Utrecht 2017
Production Ready WordPress  - WC Utrecht 2017Production Ready WordPress  - WC Utrecht 2017
Production Ready WordPress - WC Utrecht 2017
 
Make It Cooler: Using Decentralized Version Control
Make It Cooler: Using Decentralized Version ControlMake It Cooler: Using Decentralized Version Control
Make It Cooler: Using Decentralized Version Control
 
The Architect Way
The Architect WayThe Architect Way
The Architect Way
 
Desktop Intro
Desktop IntroDesktop Intro
Desktop Intro
 
Aiming for automatic updates - Drupal Dev Days Lisbon 2018
Aiming for automatic updates - Drupal Dev Days Lisbon 2018Aiming for automatic updates - Drupal Dev Days Lisbon 2018
Aiming for automatic updates - Drupal Dev Days Lisbon 2018
 
2020 oct zowe quarterly webinar series
2020 oct zowe quarterly webinar series2020 oct zowe quarterly webinar series
2020 oct zowe quarterly webinar series
 
TYPO3 Camp Stuttgart 2015 - Continuous Delivery with Open Source Tools
TYPO3 Camp Stuttgart 2015 - Continuous Delivery with Open Source ToolsTYPO3 Camp Stuttgart 2015 - Continuous Delivery with Open Source Tools
TYPO3 Camp Stuttgart 2015 - Continuous Delivery with Open Source Tools
 
Production ready word press
Production ready word pressProduction ready word press
Production ready word press
 
OpenShift with Eclipse Tooling - EclipseCon 2012
OpenShift with Eclipse Tooling - EclipseCon 2012OpenShift with Eclipse Tooling - EclipseCon 2012
OpenShift with Eclipse Tooling - EclipseCon 2012
 
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...
 
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit Europe
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit EuropeAutomation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit Europe
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit Europe
 
DevOpsGuys - DevOps Automation - The Good, The Bad and The Ugly
DevOpsGuys - DevOps Automation - The Good, The Bad and The UglyDevOpsGuys - DevOps Automation - The Good, The Bad and The Ugly
DevOpsGuys - DevOps Automation - The Good, The Bad and The Ugly
 
Build automation best practices
Build automation best practicesBuild automation best practices
Build automation best practices
 
DockerCon 15 Keynote - Day 2
DockerCon 15 Keynote - Day 2DockerCon 15 Keynote - Day 2
DockerCon 15 Keynote - Day 2
 
From XPages Hero to OSGi Guru: Taking the Scary out of Building Extension Lib...
From XPages Hero to OSGi Guru: Taking the Scary out of Building Extension Lib...From XPages Hero to OSGi Guru: Taking the Scary out of Building Extension Lib...
From XPages Hero to OSGi Guru: Taking the Scary out of Building Extension Lib...
 
CT Software Developers Meetup: Using Docker and Vagrant Within A GitHub Pull ...
CT Software Developers Meetup: Using Docker and Vagrant Within A GitHub Pull ...CT Software Developers Meetup: Using Docker and Vagrant Within A GitHub Pull ...
CT Software Developers Meetup: Using Docker and Vagrant Within A GitHub Pull ...
 

More from Howard Greenberg

January OpenNTF Webinar - Backup your Domino Server - New Options in V12
January OpenNTF Webinar - Backup your Domino Server - New Options in V12January OpenNTF Webinar - Backup your Domino Server - New Options in V12
January OpenNTF Webinar - Backup your Domino Server - New Options in V12
Howard Greenberg
 
BRPA November Meeting
BRPA November MeetingBRPA November Meeting
BRPA November Meeting
Howard Greenberg
 
June OpenNTF Webinar - Domino V12 Certification Manager
June OpenNTF Webinar - Domino V12 Certification ManagerJune OpenNTF Webinar - Domino V12 Certification Manager
June OpenNTF Webinar - Domino V12 Certification Manager
Howard Greenberg
 
April, 2021 OpenNTF Webinar - Domino Administration Best Practices
April, 2021 OpenNTF Webinar - Domino Administration Best PracticesApril, 2021 OpenNTF Webinar - Domino Administration Best Practices
April, 2021 OpenNTF Webinar - Domino Administration Best Practices
Howard Greenberg
 
July 2020 OpenNTF Webinar - Hear the Latest from the User Groups!
July 2020 OpenNTF Webinar - Hear the Latest from the User Groups!July 2020 OpenNTF Webinar - Hear the Latest from the User Groups!
July 2020 OpenNTF Webinar - Hear the Latest from the User Groups!
Howard Greenberg
 
Open ntf 2020-jun
Open ntf 2020-junOpen ntf 2020-jun
Open ntf 2020-jun
Howard Greenberg
 
Dev112 let's calendar that
Dev112   let's calendar thatDev112   let's calendar that
Dev112 let's calendar that
Howard Greenberg
 
Bp101-Can Domino Be Hacked
Bp101-Can Domino Be HackedBp101-Can Domino Be Hacked
Bp101-Can Domino Be Hacked
Howard Greenberg
 
MWLUG Session- AD112 - Take a Trip Into the Forest - A Java Primer on Maps, ...
MWLUG Session-  AD112 - Take a Trip Into the Forest - A Java Primer on Maps, ...MWLUG Session-  AD112 - Take a Trip Into the Forest - A Java Primer on Maps, ...
MWLUG Session- AD112 - Take a Trip Into the Forest - A Java Primer on Maps, ...
Howard Greenberg
 
Connect 2016-Move Your XPages Applications to the Fast Lane
Connect 2016-Move Your XPages Applications to the Fast LaneConnect 2016-Move Your XPages Applications to the Fast Lane
Connect 2016-Move Your XPages Applications to the Fast Lane
Howard Greenberg
 
May 2014-webinar
May 2014-webinarMay 2014-webinar
May 2014-webinar
Howard Greenberg
 
Webinar: From Frustration to Fascination: Dissecting Replication
Webinar: From Frustration to Fascination: Dissecting ReplicationWebinar: From Frustration to Fascination: Dissecting Replication
Webinar: From Frustration to Fascination: Dissecting Replication
Howard Greenberg
 
XPages Application Layout Control - TLCC March, 2014 Webinar
XPages Application Layout Control - TLCC March, 2014 WebinarXPages Application Layout Control - TLCC March, 2014 Webinar
XPages Application Layout Control - TLCC March, 2014 Webinar
Howard Greenberg
 
Creating a Great XPages User Interface, TLCC Teamstudio Webinar - Feb, 2014
Creating a Great XPages User Interface, TLCC Teamstudio Webinar - Feb, 2014Creating a Great XPages User Interface, TLCC Teamstudio Webinar - Feb, 2014
Creating a Great XPages User Interface, TLCC Teamstudio Webinar - Feb, 2014
Howard Greenberg
 
Connect 2014 - JMP102: Creating a Great XPages User Interface
Connect 2014 - JMP102: Creating a Great XPages User InterfaceConnect 2014 - JMP102: Creating a Great XPages User Interface
Connect 2014 - JMP102: Creating a Great XPages User Interface
Howard Greenberg
 
Connect 2014 - BP202: Rapid XPages Development Using the Application Layout C...
Connect 2014 - BP202: Rapid XPages Development Using the Application Layout C...Connect 2014 - BP202: Rapid XPages Development Using the Application Layout C...
Connect 2014 - BP202: Rapid XPages Development Using the Application Layout C...
Howard Greenberg
 
Jmp103-Get the Jump on Mobilizing Your Notes and Domino Applications Today!
Jmp103-Get the Jump on Mobilizing Your Notes and Domino Applications Today!Jmp103-Get the Jump on Mobilizing Your Notes and Domino Applications Today!
Jmp103-Get the Jump on Mobilizing Your Notes and Domino Applications Today!
Howard Greenberg
 

More from Howard Greenberg (17)

January OpenNTF Webinar - Backup your Domino Server - New Options in V12
January OpenNTF Webinar - Backup your Domino Server - New Options in V12January OpenNTF Webinar - Backup your Domino Server - New Options in V12
January OpenNTF Webinar - Backup your Domino Server - New Options in V12
 
BRPA November Meeting
BRPA November MeetingBRPA November Meeting
BRPA November Meeting
 
June OpenNTF Webinar - Domino V12 Certification Manager
June OpenNTF Webinar - Domino V12 Certification ManagerJune OpenNTF Webinar - Domino V12 Certification Manager
June OpenNTF Webinar - Domino V12 Certification Manager
 
April, 2021 OpenNTF Webinar - Domino Administration Best Practices
April, 2021 OpenNTF Webinar - Domino Administration Best PracticesApril, 2021 OpenNTF Webinar - Domino Administration Best Practices
April, 2021 OpenNTF Webinar - Domino Administration Best Practices
 
July 2020 OpenNTF Webinar - Hear the Latest from the User Groups!
July 2020 OpenNTF Webinar - Hear the Latest from the User Groups!July 2020 OpenNTF Webinar - Hear the Latest from the User Groups!
July 2020 OpenNTF Webinar - Hear the Latest from the User Groups!
 
Open ntf 2020-jun
Open ntf 2020-junOpen ntf 2020-jun
Open ntf 2020-jun
 
Dev112 let's calendar that
Dev112   let's calendar thatDev112   let's calendar that
Dev112 let's calendar that
 
Bp101-Can Domino Be Hacked
Bp101-Can Domino Be HackedBp101-Can Domino Be Hacked
Bp101-Can Domino Be Hacked
 
MWLUG Session- AD112 - Take a Trip Into the Forest - A Java Primer on Maps, ...
MWLUG Session-  AD112 - Take a Trip Into the Forest - A Java Primer on Maps, ...MWLUG Session-  AD112 - Take a Trip Into the Forest - A Java Primer on Maps, ...
MWLUG Session- AD112 - Take a Trip Into the Forest - A Java Primer on Maps, ...
 
Connect 2016-Move Your XPages Applications to the Fast Lane
Connect 2016-Move Your XPages Applications to the Fast LaneConnect 2016-Move Your XPages Applications to the Fast Lane
Connect 2016-Move Your XPages Applications to the Fast Lane
 
May 2014-webinar
May 2014-webinarMay 2014-webinar
May 2014-webinar
 
Webinar: From Frustration to Fascination: Dissecting Replication
Webinar: From Frustration to Fascination: Dissecting ReplicationWebinar: From Frustration to Fascination: Dissecting Replication
Webinar: From Frustration to Fascination: Dissecting Replication
 
XPages Application Layout Control - TLCC March, 2014 Webinar
XPages Application Layout Control - TLCC March, 2014 WebinarXPages Application Layout Control - TLCC March, 2014 Webinar
XPages Application Layout Control - TLCC March, 2014 Webinar
 
Creating a Great XPages User Interface, TLCC Teamstudio Webinar - Feb, 2014
Creating a Great XPages User Interface, TLCC Teamstudio Webinar - Feb, 2014Creating a Great XPages User Interface, TLCC Teamstudio Webinar - Feb, 2014
Creating a Great XPages User Interface, TLCC Teamstudio Webinar - Feb, 2014
 
Connect 2014 - JMP102: Creating a Great XPages User Interface
Connect 2014 - JMP102: Creating a Great XPages User InterfaceConnect 2014 - JMP102: Creating a Great XPages User Interface
Connect 2014 - JMP102: Creating a Great XPages User Interface
 
Connect 2014 - BP202: Rapid XPages Development Using the Application Layout C...
Connect 2014 - BP202: Rapid XPages Development Using the Application Layout C...Connect 2014 - BP202: Rapid XPages Development Using the Application Layout C...
Connect 2014 - BP202: Rapid XPages Development Using the Application Layout C...
 
Jmp103-Get the Jump on Mobilizing Your Notes and Domino Applications Today!
Jmp103-Get the Jump on Mobilizing Your Notes and Domino Applications Today!Jmp103-Get the Jump on Mobilizing Your Notes and Domino Applications Today!
Jmp103-Get the Jump on Mobilizing Your Notes and Domino Applications Today!
 

Recently uploaded

Infrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI modelsInfrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI models
Zilliz
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
tolgahangng
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
danishmna97
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Safe Software
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
Zilliz
 
UI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentationUI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentation
Wouter Lemaire
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
shyamraj55
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Tosin Akinosho
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
Edge AI and Vision Alliance
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
Matthew Sinclair
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
Zilliz
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
Claudio Di Ciccio
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 
OpenID AuthZEN Interop Read Out - Authorization
OpenID AuthZEN Interop Read Out - AuthorizationOpenID AuthZEN Interop Read Out - Authorization
OpenID AuthZEN Interop Read Out - Authorization
David Brossard
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
kumardaparthi1024
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
akankshawande
 
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxOcean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
SitimaJohn
 

Recently uploaded (20)

Infrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI modelsInfrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI models
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
 
UI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentationUI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentation
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 
OpenID AuthZEN Interop Read Out - Authorization
OpenID AuthZEN Interop Read Out - AuthorizationOpenID AuthZEN Interop Read Out - Authorization
OpenID AuthZEN Interop Read Out - Authorization
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
 
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxOcean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
 

August Webinar - Water Cooler Talks: A Look into a Developer's Workbench

  • 1. OPENNTF WEBINARS Water Cooler Talks: A Look into a Developer's Workbench
  • 2. AGENDA • Welcome – Graham Acres • Howard Greenberg • Jesse Gallagher • Serdar Basegmez • Questions – Graham Acres
  • 3. ASKING QUESTIONS • First Question – Will this be recorded? • Yes, view on YouTube!!! • https://www.youtube.com/user/OpenNTF • Use the Questions Pane in GoToWebinar • We will get to your questions at the end of the webinar • The speakers will respond to your questions verbally • (not in the Questions pane) • Please keep all questions related to the topics that our speakers are discussing!!! • Unrelated Question => post at: • http://openntf.slack.com/
  • 4. THANKS TO THE OPENNTF SPONSORS • HCL made a significant contribution to help our organization • Funds these webinars! • Contests like Hackathons • Running the organization • Prominic donates all IT related services • Cloud Hosting for OpenNTF • Infrastructure management for HCL Domino and Atlassian Servers • System Administration for day-to-day operation
  • 5. THIS IS OUR COMMUNITY • Join us and get involved! • We are all volunteers • No effort is too small • If your idea is bigger than you can do on your own, we can connect you to a team to work on it • Test or help or modify an existing project • Write guides or documentation • Add reviews on projects / stars on Snippets
  • 6. HOWARD GREENBERG • Consultant • Notes client • Domino and XPages apps • Java • Use the following tools: • Domino Designer • SourceTree – client app to manage the process • BitBucket – repository • Swiper – makes this process bearable
  • 7. BITBUCKET – GIT VERSION CONTROL • Free for up to five users • Includes JIRA – issue tracking software • Paid Account • $3 per user per month • Private or public repositories • Source code is stored in cloud • Safe from ransomware • Version tracking • Branching – supports master, development, maintenance • Optional – you can use just a local (disk) storage or setup your own BitBucket Server
  • 8. SOURCETREE • Local GIT client • GIT is the version control system used by BitBucket • Can be command line • SourceTree provides a nice GUI • Free • Don’t have to learn the GIT command line syntax
  • 9. ADVANTAGES • Version Control • Easy to rollback to other versions • Safe code storage • Simplifies branching • Production • Development • Testing • Insert bug fixes • Does NOT do merging (there are tools for that if needed)
  • 10. WAYS TO USE… • In Designer there are two instances of the design • An NSF that can replicate, copy, etc. • Make design changes to the NSF • This is in your Notes Data directory • The NSF is “synched” with another Eclipse project • Called the “On-Disk” project • This project is what is under source control • There is a directory on your disk that is monitored by GIT/SourceTree
  • 11. CHANGES GO BOTH WAYS • Changes go from NSF to the On-Disk Project • Then these changes are “committed” and “pushed” to BitBucket • Changes can also be pulled to the local storage (On- Disk project) and then to the NSF • The local NSF (you want to use a local nsf) can then replicate with a server based NSF for testing • Or, use the template process to move the changes to a test/production nsf • NOTE: Only Design elements are stored in BitBucket, never any data!
  • 12. TIPS • Use Swiper – OpenNTF project • Gets rid of nuisance changes • Only has to be installed on Designer not server • Right click on Database to add Swiper to project • https://openntf.org/main.nsf/project.xsp?r=project/Swiper /summary • Deselect Binary DXL in Domino Designer properties
  • 13. DEMO
  • 14. Jesse Gallagher @Gidgerby - http://frostillic.us
  • 15. MY TOOLCHAIN • macOS + Notes installation • Eclipse • Plug-in Development Environment • Wild Web Developer • XPages SDK • Maven • Plus Tycho, when working with Domino • Open Liberty for JEE apps and XPages dev • VS Code (sometimes) • IntelliJ IDEA (for mobile apps) • Windows + Designer via RDP • Jenkins
  • 17. XPAGES DEV EXPERIENCE • With care, a webapp with the XPages Runtime project is a “good enough” representation • The app’s code was made portable and picks up critical details from the server context • https://frostillic.us/blog/posts/2020/6/18/the- runtimeenvironment-idiom • Quicker turnaround with any size plugin change, but requires in-depth knowledge if things go awry • The NSF ODP Tooling provides XSP autocomplete, validation, and descriptive tooltips
  • 18. PLUGIN DEV EXPERIENCE • When working with OSGi plugins for Domino, I use the XPages SDK to run the plugins from my Mac Eclipse workspace • When pairing with XPages-side Java code, I often add the built update site on the Mac to Designer’s Target Platform • This can make Designer even more unstable if you’re referencing a network drive • I’m trying to need to do this less over time
  • 19. CI/CD PIPELINE • Jenkins server with a Domino runtime available • It builds each branch (one at a time, to avoid runtime collisions) • Tycho runs a suite of compile-time tests for the backend code • Generates a ZIP of the OSGi plugins, NTFs, and instructions and makes it available alongside a recent commit list • Also deploys the .war variants to Open Liberty instances on Domino for immediate access and user testing
  • 20. SERDAR BASEGMEZ Developi Information Systems, London Blog: LotusNotus.com / Twitter: @serdar_basegmez
  • 21. TODAY’S SPECIAL ON MY WORKBENCH • RESTful API for Domino databases • Visit speakerdeck.com/sbasegmez • Designing JAX-RS services for Domino applications • OSGi plugins based on Apache Wink servlets. • Sample applications: • Node.js front-end, accessing Domino data • Customer-facing interfaces (PHP Website, native mobile applications, etc.) interacting internal systems
  • 22. DEVELOPMENT ENVIRONMENT Using… for… Eclipse IDE on Mac [Neon] OSGi plugin development OpenNTF XPages SDK Plugin Help to configure Eclipse PDE for Domino environment HCL Domino Designer on Windows NSF design, sandboxing and testbed HCL Domino Server 10.x / 11.x on CentOS Development, testing, staging and deployment Paw, Postman, Node.js scripts Testing (functional, scalability, performance, etc.) Stoplight Studio, Ulysses Documentation SourceTree + Bitbucket/Github Source Control OpenNTF Domino API Plugin Civilised way to use Java for Domino OpenNTF XLogback Plugin Logging
  • 23. DEVELOPMENT ENVIRONMENT Using… for… Eclipse IDE on Mac [Neon] OSGi plugin development OpenNTF XPages SDK Plugin Help to configure Eclipse PDE for Domino environment HCL Domino Designer on Windows NSF design, sandboxing and testbed HCL Domino Server 10.x / 11.x on CentOS Development, testing, staging and deployment Paw, Node.js scripts Testing (functional, scalability, performance, etc.) Stoplight Studio, Ulysses Documentation SourceTree + Bitbucket/Github Source Control OpenNTF Domino API Plugin Civilised way to use Java for Domino OpenNTF XLogback Plugin Logging Today’s focus
  • 24. THE ART OF ECLIPSE CONFIGURATION… • Using Eclipse vs Domino Designer • Better version, better tooling, more integrated • Configuring Eclipse to develop for Domino can be tricky! • This is the key step for efficient development. • I found my way among many possibilities
  • 25. THE ART OF ECLIPSE CONFIGURATION… • We aim to… • Compile successfully (Accessing domino packages) • Deploy using PDE (Run on Server) • Run locally (Manual/automated unit testing) • Overall… • JVM to be used (Notes or Domino) • Target Platform to be configured • File access to the Domino needed • Notes setup is nice to have
  • 26. THE ART OF ECLIPSE CONFIGURATION… • Target Platform is the key… • “The target platform specifies the set of bundles used to compile and build against within the Eclipse PDE (plugin development environment).” (Eclipse Wiki) • Java API for Domino is also needed [Notes.jar] • Build a plugin or add it to the JRE • Pain in the neck! Compiling Successfully
  • 27. THE ART OF ECLIPSE CONFIGURATION… • XPages SDK will configure the Domino OSGi platform to deploy your plugins directly into Domino Server. Domino ServerEclipse IDE Selected Projects [Eclipse Workspace] Target Platform [Eclipse Settings] XPages SDK Temporary Configuration for the Domino OSGi [pde.launch.ini] Deploy using PDE Points
  • 28. THE ART OF ECLIPSE CONFIGURATION… • Classical Scenario Eclipse IDE and Domino Server on Windows Target Platform PluginsEclipse Workspace Domino OSGiEclipse IDE OpenNTF XPages SDK Configuration
  • 29. THE ART OF ECLIPSE CONFIGURATION… • Alternative Scenario • Eclipse on Mac, Domino on Linux VM Domino Server on VMEclipse IDE on Mac OpenNTF XPages SDK Configuration Target Platform PluginsEclipse Workspace Domino OSGiEclipse IDE Target Platform Plugins
  • 30. THE ART OF ECLIPSE CONFIGURATION… • Eclipse IDE can run Java code utilizing Domino Java API • More practical than restarting HTTP every time • Quick testing for your business logic • Unit testing for your API • Difficulties: • XSP / HTTP resources will not be available • Domino classes needs native libraries • Difficult to configure (especially on Mac) • Some capabilities might not work well Run Locally
  • 31. THE ART OF ECLIPSE CONFIGURATION… • Run Configurations might be customized on Mac Run Locally
  • 32. THE ART OF ECLIPSE CONFIGURATION… • You may even use OpenNTF Domino API Run Locally
  • 33. PRODUCTION AND DEPLOYMENT • Deploy to Production using Update Site replication • It works well if you release less frequently… • Feature-Update Site deployment might be tricky • If you touch plugin.xml, test on staging. • Sometimes, small differences between production and testing might become nasty • There are ways to automate this process as well.
  • 34. FURTHER ENHANCEMENTS • Maven / p2 repositories • Automated build, CI/CD pipelines • Headless Designer • Docker Runtime
  • 35. CHALLENGES • Using Eclipse on Mac is a challenge! • Notes for Mac is “different” • Obviously, no Designer / Domino on Mac • Even EOL differences needs to be considered • Domino Upgrades • Target platform needs to be updated on upgrades • If you use custom target platform, that’d be an issue • Document your setup on every step…
  • 36. NEXT WEBINAR • September 17, 2020 • John Curtis from HCL will discuss Domino Query Language • Signup at https://openntf.org/webinars
  • 37. QUESTIONS? Use the GoToWebinar Questions Pane Please keep all questions related to the topics that our speakers are discussing!!! Unrelated Question => post at: http://openntf.slack.com/