Using XPages out of the box lets you build good-looking and well-performing applications. As XPage applications become bigger and more complex, performance can become an issue. There are several ways to improve scalability and performance that you should take into consideration. In this webinar, learn how to use partial refresh and partial execution mode and how to monitor its execution using a JSFLifeCycle monitor to avoid multiple re-calculations. See how readily available tools from OpenNTF will allow you to profile and analyze your code to improve the speed of your applications. Using Server Side Java Script and encountering a significant slow down when using Script Libraries? Learn how you can improve the speed of your application using JAVA instead of JavaScript, JSON and even @formulas.
Transformations: Smart Application Migration to XPagesTeamstudio
Migrating legacy applications with XPages without using any third party tools can be hard. Your code that was built and maintained over the years should be reused and ported to a current XPages environment. Oliver Busse will show you how to benefit from the possibilities of using Java in XPages to reproduce the functionality you already have and extend it to the next level, including:
-User profiles: create, use, and maintain
-Application profiles: reinvented
-Getting user and environment information: made easy and smart
-Transformation of the full-text search to a "facetted search" all over your application(s)
Move Your XPages Applications to the Fast LaneTeamstudio
Are your XPages applications performing like a Florida senior citizen driving in the left lane at 55 mph? A key to speeding up your XPages applications is knowledge of the:
-JSF lifecycle
-partial refresh
-and partial execution.
In this webinar, TLCC's Howard Greenberg covers these concepts and then applies them to optimizing an XPages application. Learn how to dramatically increase your XPages performance and make your users happy.
An Introduction to the Model-View-Controller PatternTeamstudio
The only constant in software development is CHANGE. Every piece of software that has been developed and shipped to a customer will be changed numerous times during its lifecycle. A good design pattern can help make changes easy. MVC, an acronym for Model - View - Controller, is becoming THE recommended model for designing frameworks - especially on the Web. This webinar will give an overview of design patterns in general, and in particular, MVC.
Ulrich Krause shows how to use the MVC design paradigm in an XPages application and demonstrate how easy it is to implement changes. Need to read/write your data from/to an XML file instead of using a Notes View? MVC makes software maintenance as easy as 1-2-3!
BONUS! During this webinar, Pete Janzen, IBM Product Manager, provides a short update about what's new and upcoming from IBM for XPages and Domino application development.
Getting Started with the OpenNTF Domino APITeamstudio
Do you use Java in your XPages applications? Want to have a better way to access Domino data? Over the last year, more and more developers have started using the OpenNTF Domino Java API. In this webinar, Paul Withers and Jesse Gallagher, part of the team of developers working on this open source software project, explain why you should be using the Domino API. Get a jumpstart into the Domino API and improve your XPages development experience!
Using XPages out of the box lets you build good looking and well performing applications. However, as XPage applications become bigger and more complex, performance can become an issue and, if it comes to scalability and speed optimization, there are a couple of things to take into consideration. Learn how to use partial refresh and partial execution mode and how to monitor its execution using a JSF LifeCycle monitor to avoid multiple re-calculation of controls. We will show tools that can allow you to profile your code, readily available from OpenNTF, along with a demonstration of how to use them to improve the speed of your code. Still writing SSJS and encounter a significant slow down when using Script Libraries? See, how you can improve the speed of your application using JAVA instead of JS, JSON and even @formulas.
SmartNSF is one piece of the IBM Domino application modernization puzzle. Learn how you can turn a simple Domino database (NSF) into a smart microservice within minutes. Don't worry if you are new to the world of REST APIs, microservices, OpenAPI specification, and YAML. Christian and Martin will provide you with an introduction to the modern paradigm of the microservice world. We will explore how your "old" skills on @Formulas, Agents, and LotusScript fit into the new world of SmartNSF. SmartNSF also brings great value to XPages, Java, and SSJS gurus. And, last but not least, learn how all of this fits into IBM's REST API strategy and get inspired by what can be done with SmartNSF in your business. Will there be a demo? For sure!
Come to this session to get an update about everything related to OpenNTF, the open source community for IBM Collaboration Solutions.
See the contest winning XPages projects live and learn about the new open source projects for IBM Connections.
The session will also cover the IBM Social Business Toolkit SDK which allows XPages, Java and JavaScript developers to easily access IBM Connections and IBM SmartCloud for Social Business from custom applications. Attend this session to see demos of the latest functionality and new samples of the toolkit.
Ad108 - XPages in the IBM Lotus Notes Client - A Deep Dive!ddrschiw
This session gives you the grand tour of XPages in the Lotus Notes client. You'll discover how easy it is to take your XPages Web apps offline, and then add custom client behaviors that really adapt your application to Lotus Notes client platform. Spread your wings and integrate your application with other client components using real-world use cases that can make a real difference to your business. Learn how to test and debug your XPages client app along the way, and see how XPages supports traditional Lotus Notes client features and get a glimpse of where these integration points will lead in the future. If you have plans for XPages on the Lotus Notes client, this session is a must for you!
Transformations: Smart Application Migration to XPagesTeamstudio
Migrating legacy applications with XPages without using any third party tools can be hard. Your code that was built and maintained over the years should be reused and ported to a current XPages environment. Oliver Busse will show you how to benefit from the possibilities of using Java in XPages to reproduce the functionality you already have and extend it to the next level, including:
-User profiles: create, use, and maintain
-Application profiles: reinvented
-Getting user and environment information: made easy and smart
-Transformation of the full-text search to a "facetted search" all over your application(s)
Move Your XPages Applications to the Fast LaneTeamstudio
Are your XPages applications performing like a Florida senior citizen driving in the left lane at 55 mph? A key to speeding up your XPages applications is knowledge of the:
-JSF lifecycle
-partial refresh
-and partial execution.
In this webinar, TLCC's Howard Greenberg covers these concepts and then applies them to optimizing an XPages application. Learn how to dramatically increase your XPages performance and make your users happy.
An Introduction to the Model-View-Controller PatternTeamstudio
The only constant in software development is CHANGE. Every piece of software that has been developed and shipped to a customer will be changed numerous times during its lifecycle. A good design pattern can help make changes easy. MVC, an acronym for Model - View - Controller, is becoming THE recommended model for designing frameworks - especially on the Web. This webinar will give an overview of design patterns in general, and in particular, MVC.
Ulrich Krause shows how to use the MVC design paradigm in an XPages application and demonstrate how easy it is to implement changes. Need to read/write your data from/to an XML file instead of using a Notes View? MVC makes software maintenance as easy as 1-2-3!
BONUS! During this webinar, Pete Janzen, IBM Product Manager, provides a short update about what's new and upcoming from IBM for XPages and Domino application development.
Getting Started with the OpenNTF Domino APITeamstudio
Do you use Java in your XPages applications? Want to have a better way to access Domino data? Over the last year, more and more developers have started using the OpenNTF Domino Java API. In this webinar, Paul Withers and Jesse Gallagher, part of the team of developers working on this open source software project, explain why you should be using the Domino API. Get a jumpstart into the Domino API and improve your XPages development experience!
Using XPages out of the box lets you build good looking and well performing applications. However, as XPage applications become bigger and more complex, performance can become an issue and, if it comes to scalability and speed optimization, there are a couple of things to take into consideration. Learn how to use partial refresh and partial execution mode and how to monitor its execution using a JSF LifeCycle monitor to avoid multiple re-calculation of controls. We will show tools that can allow you to profile your code, readily available from OpenNTF, along with a demonstration of how to use them to improve the speed of your code. Still writing SSJS and encounter a significant slow down when using Script Libraries? See, how you can improve the speed of your application using JAVA instead of JS, JSON and even @formulas.
SmartNSF is one piece of the IBM Domino application modernization puzzle. Learn how you can turn a simple Domino database (NSF) into a smart microservice within minutes. Don't worry if you are new to the world of REST APIs, microservices, OpenAPI specification, and YAML. Christian and Martin will provide you with an introduction to the modern paradigm of the microservice world. We will explore how your "old" skills on @Formulas, Agents, and LotusScript fit into the new world of SmartNSF. SmartNSF also brings great value to XPages, Java, and SSJS gurus. And, last but not least, learn how all of this fits into IBM's REST API strategy and get inspired by what can be done with SmartNSF in your business. Will there be a demo? For sure!
Come to this session to get an update about everything related to OpenNTF, the open source community for IBM Collaboration Solutions.
See the contest winning XPages projects live and learn about the new open source projects for IBM Connections.
The session will also cover the IBM Social Business Toolkit SDK which allows XPages, Java and JavaScript developers to easily access IBM Connections and IBM SmartCloud for Social Business from custom applications. Attend this session to see demos of the latest functionality and new samples of the toolkit.
Ad108 - XPages in the IBM Lotus Notes Client - A Deep Dive!ddrschiw
This session gives you the grand tour of XPages in the Lotus Notes client. You'll discover how easy it is to take your XPages Web apps offline, and then add custom client behaviors that really adapt your application to Lotus Notes client platform. Spread your wings and integrate your application with other client components using real-world use cases that can make a real difference to your business. Learn how to test and debug your XPages client app along the way, and see how XPages supports traditional Lotus Notes client features and get a glimpse of where these integration points will lead in the future. If you have plans for XPages on the Lotus Notes client, this session is a must for you!
Want to build an XPages application, but not sure how? Kathy and Dave will show you how to build a sample help desk application from start to finish. Step by Step they will show you how to create, read, update, and delete tickets. Along the way you'll be introduced the most common XPages concepts like SSJS, Custom Controls, View and Repeat Controls, Extension Library, CSS frameworks, and much more. Go home with a working application that you can use today!
October OpenNTF Webinar - What we like about Domino/Notes 12, recommended new...Howard Greenberg
In this webinar OpenNTF members will discuss the Domino/Notes 12 features they like and suggest for everyone to check out!
The topics and speakers will be:
Time-based One-time Authentication (TOTP) - Roberto Boccadoro
TOTP allows multi-factor authentication. When users login to a Domino web server they have to provide a time-based one-time use password in addition to their usual name/password. This is done using a third party application like Google Authenticator, Authy or Duo Mobile on their mobile devices/computers.
Domino OSGI Tasklet Service (DOTS) - Serdar Basegmez
Create Domino server tasks using Java OSGI plugins. These can be scheduled and can interface with the server console using TELL commands.
One Touch Setup for Domino - Roberto Boccadoro
In previous versions of HCL Domino, setting up a Domino server involved multiple steps. Starting with Domino 12, you can use one-touch Domino setup to set up a server in just a single step.
Domino 10 shipped jam packed with awesome new features you'll love. And in this webinar, you'll learn how to bring the best out of them with the Ytria tools. You'll learn about deletion logging, replication and synch-up, Domino On Disk Structures (ODS) and what they mean, and more—as well as how you can enable and enhance these features using our upcoming EZ Suite version 19.
JMP201 Introduction to IBM Lotus Notes and IBM Lotus Domino Integration with ...John Head
Welcome to the real world … where Lotus Notes and Lotus Domino are just part of your corporate toolset. This session will introduce you to integration of Lotus Notes and Domino 8 with Microsoft Office, OpenOffice.org, and Lotus Symphony. We'll start with the basics and gradually build up to advanced integration. Mail Merge, exporting to a spreadsheet, charting, presentation building, and integration on the Web will all be covered. Advanced topics such as Visual Studio Tools for Office, use of BIRT for reporting and integration with Lotus Domino Web Services will round out the session. You'll walk away with sample applications and code you can use immediately! (Participation in the Kum Bah Yah sing-along is optional)
CrossWorlds is IBM WebSphere Liberty and IBM Domino getting together to provide a huge leap forward for Domino developers and customer. Learn what's being built !!!
ICONUK 2016 conference in London:
Your collaboration infrastructure contains a gold mine of information just waiting to get used. Come join Chris for this fast paced session covering a rich variety of collaboration topics such as cloud readiness, on-boarding, social adoption, ICAA (the Notes Browser Plugin) and more. Learn from 21 real-world companies and how they tackled their next collaboration move by diving into their very own data sets. Walk away with a free starter-pack of licenses that gets you on the road to make your data work for you!
Best Practices for Installing IBM Verse on PremisesTimsterC
IBM's local edition of Verse for email is hitting many enterprises. If you have not yet tried this out for yourself, then come and find out just how easy it is.Learn the tips and tricks that go into a successful deployment with a hands-on demo of the places to look out for and the finished product.We'll also show the integrations with Connections Files, Profiles and Box.
SHOW102 XPages: Still No Experience Necessary IBM Connect 2014Kathy Brown
IBM Connect 2014
XPages: Still No Experience Necessary
Step by Step see how to create an XPages application. Create a help desk ticket app, including CRUD (Create, Read, Update, Delete)
The future of web development write once, run everywhere with angular.js and ...Mark Roden
This slide deck was used in support of BTE 102 - The future of web development write once, run everywhere with angular.js and domino at IBMConnectED 2015
Presentation was given with Mark Leusink
Domino 10 has some amazing self-healing capabilities that are going to make every admin’s life much easier. Learn how automatic cluster database symmetry works to ensure both NSFs and DAOS content are kept in sync across cluster mates. Understand how the repair engine remedies any missing databases or NLOs, rebuilds full text indexes, and detects and repairs corrupt NSFs and NLOs. You will also learn how to use the new commands to manually invoke corruption repair and how the new replica synchronization tool and replication currency monitoring work. Get the ins and outs of the functionality of automatic hot view updating and how to setup deletion logging so you know who/what deleted a document.
Soccnx10: Best and worst practices deploying IBM Connectionspanagenda
Depending on deployment size, operating system and security considerations you have different options to configure IBM Connections. This session will show good and bad examples on how to do it from multiple customer deployments. We will describe things we found and how you can optimize your systems. Main topics include simple (documented) tasks that should be applied, missing documentation, automated user synchronization, TDI solutions and user synchronization, performance tuning, security optimizing and planning Single Sign On for mail, IBM Sametime and SPNEGO. This is valuable information that will help you to be successful in your next IBM Connections deployment project.
A presentation by Christoph Stoettner & Nico Meisenzahl
An introduction to configuring Domino for DockerGabriella Davis
9.0.1 FP10 brings support for Domino on a docker platform. You may know that docker is a container solution but what does that mean and how could it affect your Domino infrstructure? In this session we'll review how to install and run Domino in a docker container, whether it can support external clustering and the decisions to consider when designing container architecture.
The only constant in software development is CHANGE. Every piece of software that has been developed and shipped to a customer will be changed numerous times during it's life cycle. Depending on how well the code is designed, it is more or less easy to implement changes. MVC, which is an acronym for Model - View - Controller is no new concept. In fact this design paradigm was created by Xerox in the 80's, and it is becoming THE recommended model for designing frameworks - especially on the web. The session will give an overview of design pattern in general and MVC in particular. We will show, how to use the MVC design paradigm in an XPages application and demonstrate, how easy it is to implement changes. Need to read/write your data from/to an XML file instead of using a Notes View. MVC makes software maintenance easy as 1-2-3
Life In The FastLane: Full Speed XPagesUlrich Krause
Using XPages out of the box lets you build good looking and well performing applications. However, as XPage applications become bigger and more complex, performance can become an issue and, if it comes to scalability and speed optimization, there are a couple of things to take into consideration.
Learn how to use partial refresh and partial execution mode and how to monitor its execution using a JSF LifeCycle monitor to avoid multiple re-calculation of controls. We will show tools that can allow you to profile your code, readily available from OpenNTF, along with a demonstration of how to use them to improve the speed of your code.
Still writing SSJS and encounter a significant slow down when using Script Libraries? See, how you can improve the speed of your application using JAVA instead of JS, JSON and even @formulas.
Want to build an XPages application, but not sure how? Kathy and Dave will show you how to build a sample help desk application from start to finish. Step by Step they will show you how to create, read, update, and delete tickets. Along the way you'll be introduced the most common XPages concepts like SSJS, Custom Controls, View and Repeat Controls, Extension Library, CSS frameworks, and much more. Go home with a working application that you can use today!
October OpenNTF Webinar - What we like about Domino/Notes 12, recommended new...Howard Greenberg
In this webinar OpenNTF members will discuss the Domino/Notes 12 features they like and suggest for everyone to check out!
The topics and speakers will be:
Time-based One-time Authentication (TOTP) - Roberto Boccadoro
TOTP allows multi-factor authentication. When users login to a Domino web server they have to provide a time-based one-time use password in addition to their usual name/password. This is done using a third party application like Google Authenticator, Authy or Duo Mobile on their mobile devices/computers.
Domino OSGI Tasklet Service (DOTS) - Serdar Basegmez
Create Domino server tasks using Java OSGI plugins. These can be scheduled and can interface with the server console using TELL commands.
One Touch Setup for Domino - Roberto Boccadoro
In previous versions of HCL Domino, setting up a Domino server involved multiple steps. Starting with Domino 12, you can use one-touch Domino setup to set up a server in just a single step.
Domino 10 shipped jam packed with awesome new features you'll love. And in this webinar, you'll learn how to bring the best out of them with the Ytria tools. You'll learn about deletion logging, replication and synch-up, Domino On Disk Structures (ODS) and what they mean, and more—as well as how you can enable and enhance these features using our upcoming EZ Suite version 19.
JMP201 Introduction to IBM Lotus Notes and IBM Lotus Domino Integration with ...John Head
Welcome to the real world … where Lotus Notes and Lotus Domino are just part of your corporate toolset. This session will introduce you to integration of Lotus Notes and Domino 8 with Microsoft Office, OpenOffice.org, and Lotus Symphony. We'll start with the basics and gradually build up to advanced integration. Mail Merge, exporting to a spreadsheet, charting, presentation building, and integration on the Web will all be covered. Advanced topics such as Visual Studio Tools for Office, use of BIRT for reporting and integration with Lotus Domino Web Services will round out the session. You'll walk away with sample applications and code you can use immediately! (Participation in the Kum Bah Yah sing-along is optional)
CrossWorlds is IBM WebSphere Liberty and IBM Domino getting together to provide a huge leap forward for Domino developers and customer. Learn what's being built !!!
ICONUK 2016 conference in London:
Your collaboration infrastructure contains a gold mine of information just waiting to get used. Come join Chris for this fast paced session covering a rich variety of collaboration topics such as cloud readiness, on-boarding, social adoption, ICAA (the Notes Browser Plugin) and more. Learn from 21 real-world companies and how they tackled their next collaboration move by diving into their very own data sets. Walk away with a free starter-pack of licenses that gets you on the road to make your data work for you!
Best Practices for Installing IBM Verse on PremisesTimsterC
IBM's local edition of Verse for email is hitting many enterprises. If you have not yet tried this out for yourself, then come and find out just how easy it is.Learn the tips and tricks that go into a successful deployment with a hands-on demo of the places to look out for and the finished product.We'll also show the integrations with Connections Files, Profiles and Box.
SHOW102 XPages: Still No Experience Necessary IBM Connect 2014Kathy Brown
IBM Connect 2014
XPages: Still No Experience Necessary
Step by Step see how to create an XPages application. Create a help desk ticket app, including CRUD (Create, Read, Update, Delete)
The future of web development write once, run everywhere with angular.js and ...Mark Roden
This slide deck was used in support of BTE 102 - The future of web development write once, run everywhere with angular.js and domino at IBMConnectED 2015
Presentation was given with Mark Leusink
Domino 10 has some amazing self-healing capabilities that are going to make every admin’s life much easier. Learn how automatic cluster database symmetry works to ensure both NSFs and DAOS content are kept in sync across cluster mates. Understand how the repair engine remedies any missing databases or NLOs, rebuilds full text indexes, and detects and repairs corrupt NSFs and NLOs. You will also learn how to use the new commands to manually invoke corruption repair and how the new replica synchronization tool and replication currency monitoring work. Get the ins and outs of the functionality of automatic hot view updating and how to setup deletion logging so you know who/what deleted a document.
Soccnx10: Best and worst practices deploying IBM Connectionspanagenda
Depending on deployment size, operating system and security considerations you have different options to configure IBM Connections. This session will show good and bad examples on how to do it from multiple customer deployments. We will describe things we found and how you can optimize your systems. Main topics include simple (documented) tasks that should be applied, missing documentation, automated user synchronization, TDI solutions and user synchronization, performance tuning, security optimizing and planning Single Sign On for mail, IBM Sametime and SPNEGO. This is valuable information that will help you to be successful in your next IBM Connections deployment project.
A presentation by Christoph Stoettner & Nico Meisenzahl
An introduction to configuring Domino for DockerGabriella Davis
9.0.1 FP10 brings support for Domino on a docker platform. You may know that docker is a container solution but what does that mean and how could it affect your Domino infrstructure? In this session we'll review how to install and run Domino in a docker container, whether it can support external clustering and the decisions to consider when designing container architecture.
The only constant in software development is CHANGE. Every piece of software that has been developed and shipped to a customer will be changed numerous times during it's life cycle. Depending on how well the code is designed, it is more or less easy to implement changes. MVC, which is an acronym for Model - View - Controller is no new concept. In fact this design paradigm was created by Xerox in the 80's, and it is becoming THE recommended model for designing frameworks - especially on the web. The session will give an overview of design pattern in general and MVC in particular. We will show, how to use the MVC design paradigm in an XPages application and demonstrate, how easy it is to implement changes. Need to read/write your data from/to an XML file instead of using a Notes View. MVC makes software maintenance easy as 1-2-3
Life In The FastLane: Full Speed XPagesUlrich Krause
Using XPages out of the box lets you build good looking and well performing applications. However, as XPage applications become bigger and more complex, performance can become an issue and, if it comes to scalability and speed optimization, there are a couple of things to take into consideration.
Learn how to use partial refresh and partial execution mode and how to monitor its execution using a JSF LifeCycle monitor to avoid multiple re-calculation of controls. We will show tools that can allow you to profile your code, readily available from OpenNTF, along with a demonstration of how to use them to improve the speed of your code.
Still writing SSJS and encounter a significant slow down when using Script Libraries? See, how you can improve the speed of your application using JAVA instead of JS, JSON and even @formulas.
Topics covered:
1. Generating a new Remix project
2. Conventional files
3. Routes (including the nested variety)
4. Styling
5. Database interactions (via sqlite and prisma)
6. Mutations, Validation, and Authentication
7. Error handling
8. SEO with Meta Tags and much more
Presented by Ulrich Krause (BCC) @eknori and Howard Greenberg (TLCC) @TLCCLtd at Engage 2014 by BLUG.
There are many factors that affect how fast your XPages applications run, from server configuration to the way the XPage is designed.
In this session you will learn how you can optimize both your application and your server. Explore the JSF Life cycle and how it affects performance.
Discover how using on page load, partial update and partial execution can help. See how readily available tools from OpenNTF can be used to profile and analyze your code to improve the speed of your applications.
Using the right programming language? Choosing the right language can have a dramatic impact on your XPages performance.
After you attend this session you will learn how your XPages can survive and thrive in the fast lane of the autobahn where there are no speed limits!
Mixing d ps building architecture on the cross cutting examplecorehard_by
В рамках доклада мы поговорим о важности архитектурных решений, в том числе, для обеспечения высокого качества ПО при минимальных трудозатратах. Сквозной пример из области резервного копирования данных позволит лучше понять техническую, QA и общепроцессную составляющие подхода. Прошло достаточно времени, чтобы раскрыть технические детали без нарушения NDA, предложенный вариант на базе метрик, которые мы обязательно упомянем, был признан лучшим архитектурным решением в рамках компании – одного из лидеров отрасли, получил награду Microsoft, был «размножен» на смежные области. Приступаем: Builder, Decorator, Composite, Iterator и Visitor - как эти паттерны помогли решить нетривиальную С++ задачу.
This is episode 4 of the building the perfect PHP app for the enterprise webinar series. Nothing is faster than a frustrated user clicking away from your site or abandoning your service. Avoid attrition by learning how to tune your applications towards lightning-fast page loads and response times. Learn: the basic principles behind enterprise PHP performance management; How to optimize workloads through background jobs and caching; How to measure performance and make data-driven decisions.
Lessons learned from the worlds largest XPage projectMark Roden
Working on the world's largest XPages implementation has its challenges. Modernizing an IBM Notes client application used in over 105 countries by over 100,000 users teaches you a lot! In this session, we'll share some of the challenges and our appropach to overcoming them. We'll demonstrate a new XPinC performance feature in the upcoming Social Edition being added as a result of our work with IBM. We'll also demonstrate best practices in user interaction, share lessons learned on team development using a single .nsf file -- and much more. Come and find out more about how you can save time, money and avoid end-user frustration as we share our experiences - and open the covers of the largest XPages project in the world. Sample DB provided!
Optimus XPages: An Explosion of Techniques and Best PracticesTeamstudio
Are you starting a new XPages project, but not sure it’s going to be done right the first time? Do you have an existing application that doesn’t seem to have that “X” Factor? In this webinar, John Jardin demonstrates how XPages developers can apply proven techniques and best practices to take their applications to a game-changing level.
You'll learn how to:
-Rapidly develop responsive applications,
-Improve user experience and response times with background and multi-threaded operations,
-Keep your XPages lightweight with code injection,
-Create scheduled tasks the XPages way,
-And much more.
This session introduces tools that can help you analyze and troubleshoot performance with SharePoint 2013. This sessions presents tools like perfmon, Fiddler, Visual Round Trip Analyzer, IIS LogParser, Developer Dashboard and of course we create Web and Load Tests in Visual Studio 2013.
At the end we also take a look at some of the tips and best practices to improve performance on SharePoint 2013.
XPages Application Layout Control - TLCC March, 2014 WebinarHoward Greenberg
The Application Layout control may be the most useful and powerful tool available to an XPages developer. A well designed Application Layout can be used to provide a consistent design across all of your XPages applications and increase your XPages development productivity. This webinar will cover how to enable and design the Application Layout in a custom control to provide a consistent user interface. We will compare several application layout design strategies that can be used with the Application Layout control and use the Application Layout control with the Bootstrap4XPages project to create a responsive design for desktop, tablet and mobile devices.
The Application Layout control may be the most useful and powerful tool available to an XPages developer. A well designed Application Layout can be used to provide a consistent design across all of your XPages applications and increase your XPages development productivity. This webinar will cover:
-How to enable and design the Application Layout in a custom control to provide a consistent user interface
-Compare several application layout design strategies that can be used with the Application Layout control
-Use the Application Layout control with the Bootstrap4XPages project to create a responsive design for desktop, tablet and mobile devices
Learn how to improve the performance of your Cognos environment. We cover hardware and server specifics, architecture setup, dispatcher tuning, report specific tuning including the Interactive Performance Assistant and more. See the recording and download this deck: https://senturus.com/resources/cognos-analytics-performance-tuning/
Senturus offers a full spectrum of services for business analytics. Our Knowledge Center has hundreds of free live and recorded webinars, blog posts, demos and unbiased product reviews available on our website at: https://senturus.com/resources/
Application Virtualization, University of New HampshireTony Austwick
Presentation to EDUCAUSE, NERCOMP by David Blezzard from University of New Hampshire.
More here http://www.educause.edu/nercomp-annual-conference/2016/2016/streamlining-application-deployment-and-management-through-virtualization
We will report how using the Application Jukebox application virtualization solution at the University of New Hampshire has saved time and simplified management of public and department-specific computer labs and our VDI environment. Traditionally, we used a combination of imaging and then various scripted deployments to install applications. With application virtualization, we have been able to move over a hundred Windows applications into virtual packages that can be "installed" by users on demand. We will discuss the general problem of managing large numbers of complex applications across a range of computer environments while also trying to be flexible and responsive to users.
Outcomes: Understand how application virtualization can overcome issues with deploying software * Appreciate the capabilities of Application Jukebox to be able to assess its utility to your campus * Obtain a model for evaluating a tool's potential savings
Search Terms and Design Complexity: A Tutorial Before Modernizing or MigratingTeamstudio
Are you preparing to modernize your IBM Notes and Domino applications or migrate off the platform? Notes and Domino have provided a lot of proprietary design concepts over the years. Do you know where they're in use or what the impact will be on your modernization and migration projects?
Watch this webinar to see how using the search terms feature within Teamstudio Adviser can help you catalog the areas of possible problems. Additionally, learn how to use Teamstudio Configurator to pinpoint exactly where the problem areas are in your applications.
Back from the Dead: When Bad Code Kills a Good ServerTeamstudio
It's Friday and a new customer calls. Their mission critical app is taking :05 to open documents and the users are quite concerned. Where do you start when handed a 20-year-old application you have never seen, on a server you barely know? Join two IBM Champions as they dissect a complex Domino performance problem from both the administration and development side to provide a complete customer solution. This session includes best practices around problem-solving techniques and a checklist you can use internally to quickly solve problems you encounter.
Understand Usage with Detailed Access InformationTeamstudio
Understanding exactly who is using your Notes and Domino applications is important for compliance, efficiency, and security. Adviser 6.1 includes Effective Access, a feature that displays users’ access rights to specified databases, no matter how complex your group hierarchies. In this webinar, Dan Colbert and John Coolidge show:
-An easy way to audit the Effective Access of all users across an environment
-How to quickly replicate access rights for a new hire
-A better way to avert unauthorized or inadvertent access risks
Whether you:
-Have an upcoming audit,
-Are looking to consolidate servers,
-Are a Domino admin wanting to make your day-to-day support tasks easier,
-Or you are a security team unfamiliar with Notes/Domino and are looking to better understand your security settings in general,
The powerful features demoed in this webinar will save you and your staff hours of time otherwise spent manually analyzing group hierarchies and unraveling nested groups.
IBM Presents the Notes Domino Roadmap and a Deep Dive into Feature Pack 8Teamstudio
This webinar encompasses two sessions presented at IBM Connect 2017. Adam Kesner and Barry Rosen from IBM review the latest updates on Notes/Domino and discuss the future directions and support for Notes/Domino and deliverables over the coming 12-18 months while IBM moves to a continuous delivery model. Then, Martin Donnelly and Brian Gleeson from IBM take a deep dive into the key features delivered in Feature Pack 8 including how to use the new encryption capabilities, improvements to Domino Designer, and more!
Marty, You're Just Not Thinking Fourth DimensionallyTeamstudio
When XPages code doesn't work as expected, it is often because the expectation was wrong. With the various phases of the XPages lifecycle, validation, the various event handler settings, embedding Server-Side JavaScript within Client-Side JavaScript or scoped variables, understanding what's really there when your code wants it is key troubleshooting XPages.
In this webinar, Paul Withers will help you think fourth dimensionally to better pre-empt the outcomes and troubleshoot when things don't work out like you expect. You'll realise whether or not the bridge over Clayton... Shonash Ravine will be there to ensure your XPages make it Back to the Future.
IBM Presents the IBM Notes and Domino RoadmapTeamstudio
Barry Rosen, IBM Offering Manager, and Uffe Sorensen, IBM Social Collaboration Director, will review the latest updates on IBM Notes and Domino as well as IBM Verse On-premises and related Cloud solutions. They will discuss the future directions and support for IBM Notes and Domino and the deliverables over the next 12 to 18 months as IBM transitions to using Feature Packs for delivering future enhancements. Plus, Martin Donnelly will discuss IBM's plans for XPages enhancements.
XPages and jQuery DataTables: Simplifying View Creation while Maximizing Func...Teamstudio
Do you find adding view data to XPages unnecessarily painful? This webinar will focus on unleashing the power of jQuery DataTables within your XPages and demonstrate how to create a scalable infrastructure that minimizes the need for additional views and design changes to XPage design elements by using REST services and a reusable custom control. We will also dig into the API of DataTables and show you how to take advantage of its rich feature set to enhance the UI of your views and tables within your XPage applications. With XPages and DataTables, adding view data to your XPages can be simple, fast, powerful, and painless!
Take a Trip Into the Forest: A Java Primer on Maps, Trees, and Collections Teamstudio
Wondering how to take advantage of Java and managed beans in XPages? To do this requires knowing how to store data in Java objects and a good understanding of maps, trees, lists, and sets. No, we're not talking about Google Maps or those big green things in forests, but different Java interfaces!
Come learn from Howard Greenberg of TLCC as he discusses different programming models to use when storing application configuration information, speeding up lookups to Domino data and feeding data to repeat and table controls. Learn how to build reports from different data sources. Plus, Howard will also look at working with dates and numbers in Java and Domino. Finally, he will review the Domino Java APIs and an alternative, the OpenNTF Domino API.
Expanding XPages with Bootstrap Plugins for Ultimate UsabilityTeamstudio
IBM Champion Johnny Oldenburger from Kranendonk Smart Robotics shows how to develop very user friendly and fully responsive web applications (with XPages of course!) by making use of Bootstrap and jQuery Plugins.
He shows how to use the Select2, DateTimePickers, Multiselect, Bootstrap-select, Modals, Popovers, and Notifications plugins to deliver the ultimate in usability. Learn how to solve the AMD issue when incorporating JavaScript libraries in XPages. Go beyond the basics and create applications that nobody ever thought possible using XPages.
In this webinar, John Jardin continues his series, "Optimus XPages: An Explosion of Techniques and Best Practices,” by providing an end-to-end, deep dive demonstration on how to apply the methods described in the initial webinar presented in March 2016. This follow-up webinar favours the techies; see a fast-paced demo showing off live design and coding where everything is explained on the fly.
John starts with a brand new XPages design and ends with a Cloud-ready, single page application. "Not enough," you say? Fear not. John ends the webinar with some Easter egg giveaways that you don’t want to miss!
Understand the True Business Usage of Notes Applications with Usage AuditorTeamstudio
Organizations commonly have dozens, hundreds, or even thousands of Notes applications in production, but struggle with the cost and control problems associated with an unnecessarily large and complex app inventory. One key piece of information needed for success in many projects is a reliable understanding of the true business usage of apps.
Follow along as we tell the stories of four real companies on their journeys through server consolidation, application migration and modernization, and everyday maintenance. In this webinar, you'll learn how Teamstudio Usage Auditor:
-effectively tracks business usage activity,
-audits applications for Web browser and Notes client activity,
-will help you ace your next project,
-and much more.
Building Responsive Applications Using XPagesTeamstudio
Let Connect come to you! In this webinar, Brian Gleeson and Martin Donnelly from the IBM Development Team present their Connect 2016 session.
Bootstrap was integrated into the XPages Extension Library in 2014 and has continued to rapidly evolve ever since. This responsive design capability empowers you to build the slickest Domino Web applications ever - where the user experience dynamically adapts for the desktop, tablet, or smaller mobile devices. Brian and Martin will show you how to quickly and easily transform your old applications into something that will impress your end users (and your boss)!
Using Cool New Frameworks in (Mobile) Domino AppsTeamstudio
Did you know there's an abundance of cool CSS and JS frameworks out there? Have you ever wanted to find out how you can use them in your own (mobile) Domino apps? Theo Heselmans shows real world applications from his customers using some of these powerful frameworks inside Domino. Explore with us on how they integrated Bootstrap, Ratchet.js, Knockout.js, Backbone.js, Underscore.js, jQuery.js and more!
A panel of XPages experts - Mike McGarel, David Leedy, and Nathan Freeman - each give a short presentation, then answer XPages questions from attendees. For the recording, please visit: https://youtu.be/jBaRSM9Ng_o
XControls have become a powerful tool for XPages developers. Join Matt White and Rich Sharpe to look at:
-What's possible with the XControls
-How to start using the XControls
-A deep dive section on the "Global Search" control
-An upcoming roadmap/new XControls
Mobilisez vos Applications IBM Notes avec Teamstudio Unplugged ! (French Lang...Teamstudio
Rejoignez IBM et Teamstudio pour un webinar (en Français) le mercredi 24 juin et découvrez comment Unplugged permet une mobilisation simple et rapide de vos applications IBM Notes. Et pas seulement! Avec Teamstudio Unplugged vos utilisateurs nomades auront un accès read/write à leurs applications depuis leurs tablettes et leurs smartphones, même offline!
Domino, Notes, and Verse - Where are We and Whats the Future?Teamstudio
Hear from IBM's product team and learn where Notes, Domino, and Verse are headed in this webinar for administrators, application developers, and managers. The product team from IBM cover the following topics:
-Domino and Notes Directions with Scott Vrusho
-Domino Security with Dave Kern and Kevin Lynch
-IBM Verse with Scott Souder
App.Next - The Future of Domino Application DevelopmentTeamstudio
Learn IBM's product directions for Domino and XPages application development from 3 speakers from the IBM development team: Pete Janzen, Martin Donnelly, and Brian Gleeson.
The Domino application development landscape is about to get a whole lot richer. Not only is IBM giving developers new features that will enhance their on-premises platform, XPages runtime and Domino Designer, but they will show how they are bringing the value of Domino to the cloud with new services for IBM Bluemix. New responsive design features, RDBMS data sources, document encryption on the Web, and Bluemix: there's a lot to pack in!
Presenting Data – An Alternative to the View ControlTeamstudio
In this webinar, Paul Della-Nebbia, an IBM Champion, will show how to implement a different alternative for displaying information from Domino views. Paul will cover how to use the Dojo Data Grid (included with XPages) to display a data grid that provides unique features like infinite scrolling, click to sort column headers, adjustable column widths, filtering, and the ability to drag and drop column headers to reorder. As the user scrolls through, the view data is retrieved as needed which improves performance and usability.
Beans and Java! We hear those buzz words all the time, but our XPages applications seem to work fine with Server Side JavaScript. Why should we use Java and managed beans? Come learn about one long-time Notes developer's journey using a Java Managed Bean and why. Discover how a Bean allowed the data to be cached in memory allowing for quick access to user-selected data subsets. Learn how different Java collections like HashMaps, ArrayLists and TreeSets can be used to build in-memory objects of your data. See how using a Managed Bean can simplify and greatly speed up your XPage! A comparison will be made of the performance savings before and after the implementation of the Managed Bean. Come get gently led down the path to the pot of Java waiting at the end of the rainbow!
Click here to download the sample application used in the webinar: http://www.tlcc.com/admin/tlccsite.nsf/pages/feb-java-webinar?opendocument
A tale of scale & speed: How the US Navy is enabling software delivery from l...sonjaschweigert1
Rapid and secure feature delivery is a goal across every application team and every branch of the DoD. The Navy’s DevSecOps platform, Party Barge, has achieved:
- Reduction in onboarding time from 5 weeks to 1 day
- Improved developer experience and productivity through actionable findings and reduction of false positives
- Maintenance of superior security standards and inherent policy enforcement with Authorization to Operate (ATO)
Development teams can ship efficiently and ensure applications are cyber ready for Navy Authorizing Officials (AOs). In this webinar, Sigma Defense and Anchore will give attendees a look behind the scenes and demo secure pipeline automation and security artifacts that speed up application ATO and time to production.
We will cover:
- How to remove silos in DevSecOps
- How to build efficient development pipeline roles and component templates
- How to deliver security artifacts that matter for ATO’s (SBOMs, vulnerability reports, and policy evidence)
- How to streamline operations with automated policy checks on container images
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
The publishing industry has been selling digital audiobooks and ebooks for over a decade and has found its groove. What’s changed? What has stayed the same? Where do we go from here? Join a group of leading sales peers from across the industry for a conversation about the lessons learned since the popularization of digital books, best practices, digital book supply chain management, and more.
Link to video recording: https://bnctechforum.ca/sessions/selling-digital-books-in-2024-insights-from-industry-leaders/
Presented by BookNet Canada on May 28, 2024, with support from the Department of Canadian Heritage.
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfPeter Spielvogel
Building better applications for business users with SAP Fiori.
• What is SAP Fiori and why it matters to you
• How a better user experience drives measurable business benefits
• How to get started with SAP Fiori today
• How SAP Fiori elements accelerates application development
• How SAP Build Code includes SAP Fiori tools and other generative artificial intelligence capabilities
• How SAP Fiori paves the way for using AI in SAP apps
Communications Mining Series - Zero to Hero - Session 1DianaGray10
This session provides introduction to UiPath Communication Mining, importance and platform overview. You will acquire a good understand of the phases in Communication Mining as we go over the platform with you. Topics covered:
• Communication Mining Overview
• Why is it important?
• How can it help today’s business and the benefits
• Phases in Communication Mining
• Demo on Platform overview
• Q/A
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
PHP Frameworks: I want to break free (IPC Berlin 2024)Ralf Eggert
In this presentation, we examine the challenges and limitations of relying too heavily on PHP frameworks in web development. We discuss the history of PHP and its frameworks to understand how this dependence has evolved. The focus will be on providing concrete tips and strategies to reduce reliance on these frameworks, based on real-world examples and practical considerations. The goal is to equip developers with the skills and knowledge to create more flexible and future-proof web applications. We'll explore the importance of maintaining autonomy in a rapidly changing tech landscape and how to make informed decisions in PHP development.
This talk is aimed at encouraging a more independent approach to using PHP frameworks, moving towards a more flexible and future-proof approach to PHP development.
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024Neo4j
Neha Bajwa, Vice President of Product Marketing, Neo4j
Join us as we explore breakthrough innovations enabled by interconnected data and AI. Discover firsthand how organizations use relationships in data to uncover contextual insights and solve our most pressing challenges – from optimizing supply chains, detecting fraud, and improving customer experiences to accelerating drug discoveries.
GridMate - End to end testing is a critical piece to ensure quality and avoid...ThomasParaiso2
End to end testing is a critical piece to ensure quality and avoid regressions. In this session, we share our journey building an E2E testing pipeline for GridMate components (LWC and Aura) using Cypress, JSForce, FakerJS…
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
Climate Impact of Software Testing at Nordic Testing DaysKari Kakkonen
My slides at Nordic Testing Days 6.6.2024
Climate impact / sustainability of software testing discussed on the talk. ICT and testing must carry their part of global responsibility to help with the climat warming. We can minimize the carbon footprint but we can also have a carbon handprint, a positive impact on the climate. Quality characteristics can be added with sustainability, and then measured continuously. Test environments can be used less, and in smaller scale and on demand. Test techniques can be used in optimizing or minimizing number of tests. Test automation can be used to speed up testing.
Dr. Sean Tan, Head of Data Science, Changi Airport Group
Discover how Changi Airport Group (CAG) leverages graph technologies and generative AI to revolutionize their search capabilities. This session delves into the unique search needs of CAG’s diverse passengers and customers, showcasing how graph data structures enhance the accuracy and relevance of AI-generated search results, mitigating the risk of “hallucinations” and improving the overall customer journey.
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
Essentials of Automations: The Art of Triggers and Actions in FMESafe Software
In this second installment of our Essentials of Automations webinar series, we’ll explore the landscape of triggers and actions, guiding you through the nuances of authoring and adapting workspaces for seamless automations. Gain an understanding of the full spectrum of triggers and actions available in FME, empowering you to enhance your workspaces for efficient automation.
We’ll kick things off by showcasing the most commonly used event-based triggers, introducing you to various automation workflows like manual triggers, schedules, directory watchers, and more. Plus, see how these elements play out in real scenarios.
Whether you’re tweaking your current setup or building from the ground up, this session will arm you with the tools and insights needed to transform your FME usage into a powerhouse of productivity. Join us to discover effective strategies that simplify complex processes, enhancing your productivity and transforming your data management practices with FME. Let’s turn complexity into clarity and make your workspaces work wonders!
Sudheer Mechineni, Head of Application Frameworks, Standard Chartered Bank
Discover how Standard Chartered Bank harnessed the power of Neo4j to transform complex data access challenges into a dynamic, scalable graph database solution. This keynote will cover their journey from initial adoption to deploying a fully automated, enterprise-grade causal cluster, highlighting key strategies for modelling organisational changes and ensuring robust disaster recovery. Learn how these innovations have not only enhanced Standard Chartered Bank’s data infrastructure but also positioned them as pioneers in the banking sector’s adoption of graph technology.
The Autobahn Has No Speed Limit - Your XPages Shouldn't Either!
1. The Autobahn Has no Speed Limit – Your XPages Shouldn’t Either
Tweet about this event: #xpages
and mention us: @teamstudio @TLCCLTD @eknori
October 17, 2013
3. Who we are
• Our background is in creating tools for collaborative
computing in mid-size and large enterprises, primarily for
Lotus Notes
• Easy-to-use tools for developers and administrators
• 2300+ active customers, 47 countries
• Offices in US, UK and Japan
• Entered mobile space in 2010 with Unplugged – easy
mobilization of Notes apps to Blackberry, Android and iOS
4. Teamstudio Unplugged
• Your Mobile Domino Server – take your Notes
apps with you!
• End users access Notes applications from
mobile devices whether online or offline
• Leverages existing skills and technology –
XPages – Replication model you already know
• IBM Collaboration Solutions Award Winner 2013
5. Teamstudio Continuity
•
Mobile BCM application for smartphones and tablets
– iOS, Android and BB
•
•
•
Offline access to all your BCM and
Disaster Recovery data
Store plans, contacts, call trees, and more
Client available for download from app stores
6. Teamstudio
• Next webinar November 19th
• DCLUG – October 24th
• BLUG All Things Mobile – October 29th
• Promotions:
– Chance to win an iPad mini when you get a demo of Teamstudio
Continuity
7. The Autobahn has no speed limit
- Your XPages shouldn't either!
Your Host Today:
Paul Della-Nebbia
TLCC
@PaulDN
#XPages
1
8. Upcoming and Recorded Webinars
Next Webinar on November 19th
www.tlcc.com/xpages-webinar
View Previous Webinars
(use url above)
2
9. TLCC Courses and Services
• The Leader in Notes and Domino Training since 1997
• Self Paced Distance Learning Courses for Notes/Domino
– XPages, Development, and Administration (user too!)
– Learn anywhere using your Notes client
– Many demos and activities
– An Instructor is a click away
• OnSite Private Classes
• TLCC Mentoring Services
3
10. What’s New at TLCC
Free course – Introduction to XPages Development (both 8.5 and 9.0)
New Courses!
• Notes Domino 9 Application Development 1
• Notes Domino 9 Application Development Update
• Java 1 for XPages Development (9.0)
• Notes Domino 9 System Administration Update
• Notes Domino 9 System Administration 1
New Packages!
• XPages and JavaScript for Domino 9 Package
• XPages and Rapid Development for Domino 9 Package
• XPages, JavaScript and Rapid Development for Domino 9 Package
TLCC’s Fall Sale – Extended to Oct. 31st
4
11. XPages Skills Path
Suggested TLCC Skills Path at TLCC.com
Core Notes/Domino
Skills
Domino Object
Model skills
LotusScript or
Java
Rapid XPages
Development (user
interface controls)
XPages
Development 2
JavaScript for
XPages Developers
XPages
Development 1
Mobile XPages
Development
Java for XPages
TLCC Can Help:
•
•
•
•
•
Self Paced Courses
Instructor Led Online
OnSite Private Instructor Led
Blended Learning
Custom courses
5
17. Hardware
• The hardware used has a significant influence on
performance. There are 3 key elements:
– CPU
– Main Memory
– Hard Disk
11
18. Hardware
• Main Memory
– Limit defined by the operating system
Scalability
• CPU
– Cores / Clock / Cache
Poor response time
• Weak CPU AND Low Memory
– Poor overall performance
– Poor response times
– Server "hangs"
12
19. Network
• Latency
– Time taken for data transmission between
multiple computers on a network
• Bandwidth
– Rate of transmission of data
• Greater Bandwidth
+ Lower Latency
-------------------------------= Better Connection
13
20. Client & Browser
• Hardware
• How many data requests / responses are
transmitted
• How much data is transferred (size)
• Caching of resources
• How much CSJS runs
• Size / complexity of the CSS
• Complexity of the site structure
14
21. Limiting factors on performance
• Browser / HTTP server
– Network latency – distance/time to server.
– Bandwidth – size of files.
– Browser limits on concurrent downloads
• IE7 allows 2 downloads, IE8 allows 6
• HTTP Server / App Server
– HTTP Server JVM heap size & garbage collector
– CPU time, competition between threads, gives slower
response times
– Threads, limited to 40 by default
15
22. Limiting factors on performance
• App Server / Domino context
– Read design elements from the NSF (XPage .class files, form
structure, etc)
– Backend API calls may be expensive, especially for large data
sets
– Design elements may be network requests
16
23. Limiting factors on performance
• Servlet / Lifecycle
– Restore control tree – file system read. Control tree locking
– no concurrent access
– Rendered re-evaluated for every control for most phases
• Browser/Client JavaScript/Dojo
– Inline JavaScript blocks insertion of later HTML elements
into the DOM tree
– Dojo does AJAX requests for .js files for dojo modules that
are not loaded
17
24. General Performance Options
• notes.ini
– HTTPJVMMaxHeapSizeSet=1
– HTTPJVMMaxHeapSize=256M
• Should be set to ¼ of the available RAM
• Domino Administrator
– HTTP server Disable Logging
– HTTP server thread count defaults to 40
• link to IBM article
• Debugging enabled in notes.ini ?
– JavaEnableDebug=1
– JavaDebugOptions=transport=dt_socket,server=y,suspen
d=n,address=8000
– JavascriptEnableDebug=1
18
25. Reducing Memory Utilization
• xsp.persistence.mode=
– Defines the persistence mode for the JSF pages
• file: All the pages are persisted on disk
• fileex: All the pages are persisted on disk except the current one,
which stays in memory
• <else>: All the pages stay in memory (tree mode)
19
26. JavaScript/CSS Aggregation
• Groups many DOJO, CSS / JS files into a single file
– Less requests from the browser to the server
– Performance improvements on networks with high
latency
– Enhanced performance parsing CSS / JS
– Fewer connections to the server
On the Server: xsp.properties:
xsp.resources.aggregate=true
20
28. XPages PreLoad
• XPagesPreload=1
• New Feature in Notes / Domino 8.5.3
• Works on Server and Client
• Java classes from the XPages runtime plug-ins loaded
from a fixed list of runtime classes ( 435 in ND 8.5.3 )
– com.ibm.xsp.core, common utility, JS wrapper, FSF runtime
classes
• Java classes referenced in *-faces.config.xml
– XPages control renderer, data sources, complex types
22
29. XPages PreLoad
• XPagesPreloadDB =
Server!!Db.nsf/XPage.xsp, myLocalDb.nsf
• Works at the application level
• The application is loaded on the client / server startup into
memory
– This happens even when the application is first opened in
the browser
23
30. XPages PreLoad (cont.)
• For each entry in the notes.ini variable, an XPage
URL is generated and sent to the server
• The application is loaded, and the HTML generated
• The XPages runtime discards the HTML, but retains
the application in memory
24
31. Scoped Variables
• applicationScope
– Are visible for all users of one application
– Expires some time after the last user used an
applicationScope variable
– applicationScope variables are NOT persistent forever
• sessionScope
– Is valid through the session of the current user
– A user session expires after some time of inactivity
– Uses don't have access to the sessionScope variables of
other users
25
32. Scoped Variables (cont.)
• viewScope
– Is visible for views on the current page only.
– Useful for transporting a search query to a view.
• requestScope
– Is valid through one request of the current user.
– That includes refreshing of a page.
26
35. JSF Life Cycle - Post
Request
Restore View
•Restore component tree
•Events:
•afterRestoreView
Apply Request
Values
•Copy data to Editable
controls
Process Validations
•Validations
•Converters
Update Model
Values
•Move values to data
source
Invoke Application
•Application logic
•Events:
•onClientLoad (XPage,
etc)
•on… events of button,
etc.
Render Response
•Convert to HTML, etc.
•Events:
•beforeRenderReponse
•afterRenderResponse
Response
29
36. Lifecycle1 XPage – Initial Page Load
Render Response
• Rendered property for id: label1
• Label property for id: label1
• Rendered property for id: inputText1
• Default value property for id: inputText1
• Rendered property for id: label2
• Rendered property for id: comboBox1
• values property for id: comboBox1
• values property for id: comboBox1
• Rendered property for id: computedField1
• Value property for id: computedField1
• Rendered property for id: computedField2
• Value property for id: computedField2
30
37. Lifecyle1 – Submit (Full Update)
Restore View
Apply Request Values (8)
•Rendered property for id: label1
•Rendered property for id: inputText1
•Rendered property for id: inputText1
•Rendered property for id: label2
•Rendered property for id: comboBox1
•Rendered property for id: comboBox1
•Rendered property for id: computedField1
•Rendered property for id: computedField2
Update Model Values (8)
•Rendered property for id: label1
•Rendered property for id: inputText1
•Rendered property for id: inputText1
•Rendered property for id: label2
•Rendered property for id: comboBox1
•Rendered property for id: comboBox1
•Rendered property for id: computedField1
•Rendered property for id: computedField2
Invoke Application (1)
•OnClick event for id: button1
39 SSJS Calls
Process Validations (11)
•Rendered property for id: label1
•Rendered property for id: inputText1
•Rendered property for id: inputText1
•Validation for inputText1
•Default value property for id: inputText1
•Rendered property for id: label2
•Rendered property for id: comboBox1
•Rendered property for id: comboBox1
•values property for id: comboBox1
•Rendered property for id: computedField1
•Rendered property for id: computedField2
Render Response (11)
•Rendered property for id: label1
•Label property for id: label1
•Rendered property for id: inputText1
•Rendered property for id: label2
•Rendered property for id: comboBox1
•values property for id: comboBox1
•values property for id: comboBox1
•Rendered property for id: computedField1
•Value property for id: computedField1
•Rendered property for id: computedField2
•Value property for id: computedField2
31
38. When to Execute - # vs $
<xp:label id="label1">
<xp:this.value>
<![CDATA[#{javascript:return “My
Label”;}]]>
</xp:this.value>
</xp:label>
• # is Compute dynamically
– Executed every time the page is rendered
– Use for values that are likely to change
• $ is Compute on Page Load
– Executed when the page is first loaded
– Use for values that don't change
32
39. Lifecyle2 – Submit (Full Update) - On Page Load
Restore View
Changed all Rendered and
Values (comboBox) to only
compute on Page Load
Update Model Values
•Rendered property for id: label1
•Rendered property for id: inputText1
•Rendered property for id: inputText1
•Rendered property for id: label2
•Rendered property for id: comboBox1
•Rendered property for id: comboBox1
•Rendered property for id: computedField1
•Rendered property for id: computedField2
Apply Request Values
•Rendered property for id: label1
•Rendered property for id: inputText1
•Rendered property for id: inputText1
•Rendered property for id: label2
•Rendered property for id: comboBox1
•Rendered property for id: comboBox1
•Rendered property for id: computedField1
•Rendered property for id: computedField2
Invoke Application (1)
•OnClick event for id: button1
6 SSJS Calls, saved 33
Process Validations (2)
•Rendered property for id: label1
•Rendered property for id: inputText1
•Rendered property for id: inputText1
•Validation for inputText1
•Default value property for id: inputText1
•Rendered property for id: label2
•Rendered property for id: comboBox1
•Rendered property for id: comboBox1
•values property for id: comboBox1
•Rendered property for id: computedField1
•Rendered property for id: computedField2
Render Response (3)
•Rendered property for id: label1
•Label property for id: label1
•Rendered property for id: inputText1
•Rendered property for id: label2
•Rendered property for id: comboBox1
•values property for id: comboBox1
•values property for id: comboBox1
•Rendered property for id: computedField1
•Value property for id: computedField1
•Rendered property for id: computedField2
•Value property for id: computedField2
33
40. But I need dynamic Rendering!
Options for dynamically computing the Rendered:
• Scoped variables
– Still get calculated but do the heavy lifting once and then
read the scoped variable in the Rendered property
• DataContexts
– Compute a value at the Xpage or Panel level once
– Refer to the value using EL (much faster than SSJS)
34
41. DataContext
• Can be thought of as global variables
• Value can be computed dynamically or on page load
– Warning: Computing dynamically has performance impact
• Can be scoped to any level that a data source can
– XPage, Custom Control or Panel
– Set a dataContext in a panel in a repeat control to avoid
multiple references to a NotesDocument's item
• Can be referenced using EL
– Benefit: Not having to go through the SSJS parser
35
42. DataContext - Pitfall
• Be careful binding data context variables dynamically
– They will be recomputed multiple times, even when in
partial execution mode and if they are not in use (six
times!)
• Apply Request Values
• Process Validations
• Update Model Values
• Invoke Application
• Twice in Render Response!
• If computed on page load then only computed once on page
load
• See Paul Withers blog entry to learn how to set a data context
value via code
36
43. Partial Refresh vs. Partial Execution?
• Partial Refresh (Update)
– Computes entire XPage,
only sends back what is
in the partial refresh id
(refreshId)
• Partial Execution
– Only calculates what is in
the area specified
(execId)
37
44. Partial Refresh Demo - Results
Restore View
Apply Request Values (8)
•Rendered property for id: label1
•Rendered property for id: inputText1
•Rendered property for id: inputText1
•Rendered property for id: label2
•Rendered property for id: comboBox1
•Rendered property for id: comboBox1
•Rendered property for id: computedField1
•Rendered property for id: computedField2
Update Model Values (8)
•Rendered property for id: label1
•Rendered property for id: inputText1
•Rendered property for id: inputText1
•Rendered property for id: label2
•Rendered property for id: comboBox1
•Rendered property for id: comboBox1
•Rendered property for id: computedField1
•Rendered property for id: computedField2
Invoke Application (1)
•OnClick event for id: button1
Only Savings
were here!
30 SSJS Calls, saved 9
Process Validations (11)
•Rendered property for id: label1
•Rendered property for id: inputText1
•Rendered property for id: inputText1
•Validation for inputText1
•Default value property for id: inputText1
•Rendered property for id: label2
•Rendered property for id: comboBox1
•Rendered property for id: comboBox1
•values property for id: comboBox1
•Rendered property for id: computedField1
•Rendered property for id: computedField2
Render Response (2)
•Rendered property for id: label1
•Label property for id: label1
•Rendered property for id: inputText1
•Rendered property for id: label2
•Rendered property for id: comboBox1
•values property for id: comboBox1
•values property for id: comboBox1
•Rendered property for id: computedField1
•Value property for id: computedField1
•Rendered property for id: computedField2
•Value property for id: computedField2
38
45. Partial Refresh Pros and Cons
• Pros
– Reduced control processing in the render response phase
– Smaller response from server
• Means reduced network usage
– Better UI experience
• Rest of the page is still visible while waiting for a response
• Cons
– Controls like computed fields outside refresh area don’t refresh
– Be careful turning this on for a completed XPage (TEST!)
– Can only update one area (one id)
• Workaround on Tim Tripcony blog here
39
46. Partial Execution Demo - Results
Restore View
16 SSJS Calls
Saved 13
Update Model Values (1)
•Rendered property for id: label1
•Rendered property for id: inputText1
•Rendered property for id: inputText1
•Rendered property for id: label2
•Rendered property for id: comboBox1
•Rendered property for id: comboBox1
•Rendered property for id: computedField1
•Rendered property for id: computedField2
Apply Request Values (1)
•Rendered property for id: label1
•Rendered property for id: inputText1
•Rendered property for id: inputText1
•Rendered property for id: label2
•Rendered property for id: comboBox1
•Rendered property for id: comboBox1
•Rendered property for id: computedField1
•Rendered property for id: computedField2
Invoke Application (1)
•OnClick event for id: button1
Process Validations (1)
•Rendered property for id: label1
•Rendered property for id: inputText1
•Rendered property for id: inputText1
•Validation for inputText1
•Default value property for id: inputText1
•Rendered property for id: label2
•Rendered property for id: comboBox1
•Rendered property for id: comboBox1
•values property for id: comboBox1
•Rendered property for id: computedField1
•Rendered property for id: computedField2
Render Response (12)
•Rendered property for id: label1
•Label property for id: label1
•Rendered property for id: inputText1
•Default value property for id: inputText1
•Rendered property for id: label2
•Rendered property for id: comboBox1
•values property for id: comboBox1
•values property for id: comboBox1
•Rendered property for id: computedField1
•Value property for id: computedField1
•Rendered property for id: computedField2
•Value property for id: computedField2
40
47. Partial Execution Pros and Cons
• Pros
– Reduced processing in the 3 data-processing phases
• Cons
– Control with onClick event has to be inside the execId area
– Editable values outside of the executed area do not get
submitted/updated (reset to default values)
– Existing XPages need analysis/testing before using this
• Current onclick events might refer to controls where the data
is not submitted
– ExecMode available in 8.5.1
– Have to use source to enter ExecId (in 8.5, 9.0 has Designer UI)
41
48. Partial Refresh AND Execution Demo - Results
Restore View
Apply Request Values (1)
•Rendered property for id: label1
•Rendered property for id: inputText1
•Rendered property for id: inputText1
•Rendered property for id: label2
•Rendered property for id: comboBox1
•Rendered property for id: comboBox1
•Rendered property for id: computedField1
•Rendered property for id: computedField2
•Rendered property for id: computedField2
Update Model Values (1)
•Rendered property for id: label1
•Rendered property for id: inputText1
•Rendered property for id: inputText1
•Rendered property for id: label2
•Rendered property for id: comboBox1
•Rendered property for id: comboBox1
•Rendered property for id: computedField1
•Rendered property for id: computedField2
Invoke Application (1)
•OnClick event for id: button1
6 SSJS Calls,
saved 33
Process Validations (1)
•Rendered property for id: label1
•Rendered property for id: inputText1
•Rendered property for id: inputText1
•Validation for inputText1
•Default value property for id: inputText1
•Rendered property for id: label2
•Rendered property for id: comboBox1
•Rendered property for id: comboBox1
•values property for id: comboBox1
•Rendered property for id: computedField1
•Rendered property for id: computedField2
Render Response (2)
•Rendered property for id: label1
•Label property for id: label1
•Rendered property for id: inputText1
•Rendered property for id: label2
•Rendered property for id: comboBox1
•values property for id: comboBox1
•values property for id: comboBox1
•Rendered property for id: computedField1
•Value property for id: computedField1
•Rendered property for id: computedField2
•Value property for id: computedField2
42
49. disableValidators= true
•
•
•
•
All phases (1-6) occur
Turns off all validators
Converters continue to work
Items in documents will be updated
Restore View
Apply Request
Values
Process
Validations
Update Model
Values
Invoke
Application
Render
Response
•No Validators get
executed here!
43
50. Immediate = true
• JSF Lifecycle processes only phases
(1, 2, 6)
• No data processing
• Items in documents are not
updated
• Onclick event handler scripts and
render response calculations are
performed
Restore View
Apply Request
Values
Process
Validations
Update Model
Values
Invoke
Application
Render
Response
44
51. Using the loaded Property
Loaded only computed once in the createView phase
• Loaded = true
– Not in component tree or
memory
• Loaded = false
– Control is not created
– Can never be rendered
or accessed
– Saves memory too
45
52. Life Cycle Performance Suggestions
• Most properties, like CSS “style” are
only computed in the
RenderResponse phase
• Watch and minimize:
– Rendered property (when dynamic)
• Computed multiple times!
• Use dataContexts or scoped variables
when able
• Use both Partial Refresh (Update)
and Partial Execute when able
46
53. Watch Out for @DbLookup
• @DbLookup about 3-4 times slower than SSJS
– res = @DbLookup(db,"CustomersByNameView",names[i], "phone");
vs.
– doc = vw.getDocumentByKey(names[i], true);
res = doc.getItemValueString("phone");
• Five lookups repeated 100 times
– @DbLookup averaged about 1728ms
– getDocumentByKey averaged 510ms
• Other @Functions not tested
47
55. Images
• Use correct file type depending on content
– JPEG for complex and detailed images
– PNG/GIF for simple images, fonts, transparencies
• Use the HTML <img> tag “width” and “height” attributes
• For faster HTML layout in the browser
– Size the image to size you intend to use
• Resizing using html attributes height and width will delay the
rendering of your page
• Images larger than necessary will waste bandwidth
49
56. Image Sprites
• Use CSS Image Sprites
– If you have multiple small images, make a single larger
image containing the smaller images
– Use CSS to display only the relevant subset image at a
location in the page
– For semantically significant sprites, provide an
accessibility “title” attribute (as sprites don't use the
IMG “alt” attribute, but you still want to assist blind
users)
– There's no specific XPages support for sprites, but
they're used in the XPages OneIU themes
50
58. XPages Toolbox
• XPages based Application
– Runs on the Domino server or the Notes client
– An NSF needs to be installed on the server/Notes client
– A profiler jar file should be added to the JVM launch options
• Measures CPU performance and memory allocation
• Available from OpenNTF.org
– Free open source project
• http://www.openntf.org/internal/home.nsf/project.xsp?action=open
Document&name=XPages%20Toolbox
• Extended in 8.5.2 to support backend classes profiling
52
60. XPages Toolbox
• Generate a heap dump of the JVM running in the HTTP
task
– A button in the XPages profiler generates the heap dump
– From the Domino console
• tell http xsp heapdump (triggers com.ibm.jvm.Dump.HeapDump())
• tell http xsp javadump (triggers com.ibm.jvm.Dump.JavaDump())
• Analyze the heap dump using the Eclipse memory
analyzer
– http://www.eclipse.org/mat/
– http://www.ibm.com/developerworks/java/jdk/tools/dtfj.html
54
62. More Tools
• Print statements
– In rendered/visible computations to see how often executed
• print("panel2 evaluating rendered property");
– In the XPages root control events:
• before/afterPageLoad, afterRestoreView,
before/afterRenderResponse
– Custom control root events:
• before/afterPageLoad
– In the document data source events:
• queryNewDocument, postSaveDocument, etc.
• Task Manager and/or Process Explorer
– Shows CPU usage & process memory usage as it happens
56
63. More Tools
• Browser developer tools
– for watching network transactions, partial updates,
response times
– BROWSER: Firebug, Developer Tools
– XPiNC: FirebugLite from ExtLib
• Java / Javascript Debugging
– Degrades performance but can inspect objects
• Use the Eclipse Java debugger
– In Dominonotes.ini add these 2 options:
• JavaEnableDebug=1
• JavaDebugOptions=transport=dt_socket,server=y,suspend=n,add
ress=8000
57
65. Step 1: Original Code From Sample
• Read all Contacts into a NotesDocumentCollection,
loop the collection and build the JSON by reading
the values from items in the document
59
67. Step 2: Store UNID in an item
• Get all Contacts into a NotesDocumentCollection,
loop the collection and build the JSON by reading
the values from items in the document. Also UNID
is stored in document
61
69. Step 3: Build JSON on document save
• Get all Contacts into a NotesDocumentCollection, loop
the collection and get the JSON from an item on the
document. JSON is calculated on document save
63
73. StringBuilder vs String.concat
• Concatenation of Strings is very easy in Java - all you
need is a +
• Each time you append something via + (String.concat())
a new String is created, the old stuff is copied, the new
stuff is appended, and the old String is thrown away.
The bigger the String gets the longer it takes - there is
more to copy and more garbage is produced.
• Accordingly to Arno Unkrig the optimal strategy is to
use String.concat() for 2 or 3 operands, and
StringBuilder for 4 or more operands
67
74. StringBuilder vs String.concat
• Use StringBuilder whenever you assemble a String in a
loop
– Keep in mind that + isn't always a good idea
68
75. Step 5: Use a StringBuilder to concat the JSON
69
79. Homework Time – Further References
• IBM article on JSF (non XPages)
• Paul Withers blog (each link below is different)
– Part 1, Part 2, Part 3
• Tony McGuckin’s Video - XPages Master class
– 4 videos plus sample applications
73