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.
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!
Executing hundreds or thousands of process instances per second? Yes, it's possible. This webinar is about best practices for high-load situations, and how to scale Camunda BPM horizontally.
Source Control with Domino Designer 8.5.3 and Git (DanNotes, November 28, 2012)Per Henrik Lausten
See my blog post about the presentation:
http://per.lausten.dk/blog/2012/11/source-control-with-domino-designer-8-5-3-and-git-my-talk-at-dannotes-november-2012.html
Introducing Oracle Fusion Middleware 12.1.3 and especially SOA Suite and BPM ...Lucas Jellema
Overview of Oracle FMW release 12.1.3 in general and about SOA Suite and BPM Suite 12c in particular. Highlights important new features and cross product themes (such as productivity, industrialization, ease of getting started and more). Some topics: Service Bus Pipeline, Native Format transformation, XQuery support, BAM new style, Key Performance and Risk Indicators,...
Cross-origin resource sharing (CORS) is a mechanism that allows restricted resources on a web page to be requested from another domain outside the domain from which the resource originated.
A web page may freely embed images, stylesheets, scripts, iframes, videos and some plugin content (such as Adobe Flash) from any other domain. However embedded web fonts and AJAX (XMLHttpRequest) requests have
traditionally been limited to accessing the same domain as the parent web page (as per the same-origin security policy). "Cross-domain" AJAX requests are forbidden by default because of their ability to perform
advanced requests (POST, PUT, DELETE and other types of HTTP requests, along with specifying custom HTTP headers) that introduce many cross-site scripting security issues.
CORS defines a way in which a browser and server can interact to determine safely whether or not to allow the cross-origin request. It allows for more freedom and functionality than purely
same-origin requests, but is more secure than simply allowing all cross-origin requests. It is a recommended standard of the W3C.
Apache Knox Gateway "Single Sign On" expands the reach of the Enterprise UsersDataWorks Summit
Apache Knox Gateway is a proxy for interacting with Apache Hadoop clusters in a secure way providing authentication, service level authorization, and many other extensions to secure any HTTP interactions in your cluster. One main feature of Apache Knox Gateway is the ability to extend the reach of your REST APIs to the internet while still securing your cluster and working with Kerberos. Recent contributions to the Apache Knox community have added support for Single Sign On (SSO) based on Pac4j 1.8.9 which is a very powerful security engine which provides SSO support through SAML2, OAuth, OpenID, and CAS. In addition, through recent community contributions Apache Ambari, and Apache Ranger can now also provide SSO authentication through Knox. This paper will discuss the architecture of Knox SSO, it will explain how enterprise user could benefit by this feature and will present enterprise use cases for Knox SSO, and integration with open source Shibboleth, ADFS Windows server Idp support, and Okta cloud Idp.
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!
Executing hundreds or thousands of process instances per second? Yes, it's possible. This webinar is about best practices for high-load situations, and how to scale Camunda BPM horizontally.
Source Control with Domino Designer 8.5.3 and Git (DanNotes, November 28, 2012)Per Henrik Lausten
See my blog post about the presentation:
http://per.lausten.dk/blog/2012/11/source-control-with-domino-designer-8-5-3-and-git-my-talk-at-dannotes-november-2012.html
Introducing Oracle Fusion Middleware 12.1.3 and especially SOA Suite and BPM ...Lucas Jellema
Overview of Oracle FMW release 12.1.3 in general and about SOA Suite and BPM Suite 12c in particular. Highlights important new features and cross product themes (such as productivity, industrialization, ease of getting started and more). Some topics: Service Bus Pipeline, Native Format transformation, XQuery support, BAM new style, Key Performance and Risk Indicators,...
Cross-origin resource sharing (CORS) is a mechanism that allows restricted resources on a web page to be requested from another domain outside the domain from which the resource originated.
A web page may freely embed images, stylesheets, scripts, iframes, videos and some plugin content (such as Adobe Flash) from any other domain. However embedded web fonts and AJAX (XMLHttpRequest) requests have
traditionally been limited to accessing the same domain as the parent web page (as per the same-origin security policy). "Cross-domain" AJAX requests are forbidden by default because of their ability to perform
advanced requests (POST, PUT, DELETE and other types of HTTP requests, along with specifying custom HTTP headers) that introduce many cross-site scripting security issues.
CORS defines a way in which a browser and server can interact to determine safely whether or not to allow the cross-origin request. It allows for more freedom and functionality than purely
same-origin requests, but is more secure than simply allowing all cross-origin requests. It is a recommended standard of the W3C.
Apache Knox Gateway "Single Sign On" expands the reach of the Enterprise UsersDataWorks Summit
Apache Knox Gateway is a proxy for interacting with Apache Hadoop clusters in a secure way providing authentication, service level authorization, and many other extensions to secure any HTTP interactions in your cluster. One main feature of Apache Knox Gateway is the ability to extend the reach of your REST APIs to the internet while still securing your cluster and working with Kerberos. Recent contributions to the Apache Knox community have added support for Single Sign On (SSO) based on Pac4j 1.8.9 which is a very powerful security engine which provides SSO support through SAML2, OAuth, OpenID, and CAS. In addition, through recent community contributions Apache Ambari, and Apache Ranger can now also provide SSO authentication through Knox. This paper will discuss the architecture of Knox SSO, it will explain how enterprise user could benefit by this feature and will present enterprise use cases for Knox SSO, and integration with open source Shibboleth, ADFS Windows server Idp support, and Okta cloud Idp.
Simple REST-API overview for developers. An newer version is here: https://www.slideshare.net/patricksavalle/super-simple-introduction-to-restapis-2nd-version-127968966
[Session given at Engage 2019, Brussels, 15 May 2019]
In this session, Tim Davis (Technical Director at The Turtle Partnership Ltd) takes you through the new Domino Query Language (DQL), how it works, and how to use it in LotusScript, in Java, and in the new domino-db Node.js module. Introduced in Domino 10, DQL provides a simple, efficient and powerful search facility for accessing Domino documents. Originally only used in the domino-db Node.js module, with 10.0.1 DQL also became available to both LotusScript and Java. This presentation will provide code examples in all three languages, ensuring you will come away with a good understanding of DQL and how to use it in your projects.
Orchestrating workflows Apache Airflow on GCP & AWSDerrick Qin
Working in a cloud or on-premises environment, we all somehow move data from A to B on-demand or on schedule. It is essential to have a tool that can automate recurring workflows. This can be anything from an ETL(Extract, Transform, and Load) job for a regular analytics report all the way to automatically re-training a machine learning model.
In this talk, we will introduce Apache Airflow and how it can help orchestrate your workflows. We will cover key concepts, features, and use cases of Apache Airflow, as well as how you can enjoy Apache Airflow on GCP and AWS by demo-ing a few practical workflows.
Sequelize is a promise-based Node.js ORM for Postgres, MySQL, MariaDB, SQLite and Microsoft SQL Server. It features solid transaction support, relations, eager and lazy loading, read replication and more.
XSS is much more than just <script>alert(1)</script>. Thousands of unique vectors can be built and more complex payloads to evade filters and WAFs. In these slides, cool techniques to bypass them are described, from HTML to javascript. See also http://brutelogic.com.br/blog
This presentation illustrates a number of techniques to smuggle and reshape HTTP requests using features such as HTTP Pipelining that are not normally used by testers. The strange behaviour of web servers with different technologies will be reviewed using HTTP versions 1.1, 1.0, and 0.9 before HTTP v2 becomes too popular! Some of these techniques might come in handy when dealing with a dumb WAF or load balancer that blocks your attacks.
Presented @ BSides Manchester 2017 & SteelCon 2017
Building Cloud-Native App Series - Part 2 of 11
Microservices Architecture Series
Event Sourcing & CQRS,
Kafka, Rabbit MQ
Case Studies (E-Commerce App, Movie Streaming, Ticket Booking, Restaurant, Hospital Management)
Simple REST-API overview for developers. An newer version is here: https://www.slideshare.net/patricksavalle/super-simple-introduction-to-restapis-2nd-version-127968966
[Session given at Engage 2019, Brussels, 15 May 2019]
In this session, Tim Davis (Technical Director at The Turtle Partnership Ltd) takes you through the new Domino Query Language (DQL), how it works, and how to use it in LotusScript, in Java, and in the new domino-db Node.js module. Introduced in Domino 10, DQL provides a simple, efficient and powerful search facility for accessing Domino documents. Originally only used in the domino-db Node.js module, with 10.0.1 DQL also became available to both LotusScript and Java. This presentation will provide code examples in all three languages, ensuring you will come away with a good understanding of DQL and how to use it in your projects.
Orchestrating workflows Apache Airflow on GCP & AWSDerrick Qin
Working in a cloud or on-premises environment, we all somehow move data from A to B on-demand or on schedule. It is essential to have a tool that can automate recurring workflows. This can be anything from an ETL(Extract, Transform, and Load) job for a regular analytics report all the way to automatically re-training a machine learning model.
In this talk, we will introduce Apache Airflow and how it can help orchestrate your workflows. We will cover key concepts, features, and use cases of Apache Airflow, as well as how you can enjoy Apache Airflow on GCP and AWS by demo-ing a few practical workflows.
Sequelize is a promise-based Node.js ORM for Postgres, MySQL, MariaDB, SQLite and Microsoft SQL Server. It features solid transaction support, relations, eager and lazy loading, read replication and more.
XSS is much more than just <script>alert(1)</script>. Thousands of unique vectors can be built and more complex payloads to evade filters and WAFs. In these slides, cool techniques to bypass them are described, from HTML to javascript. See also http://brutelogic.com.br/blog
This presentation illustrates a number of techniques to smuggle and reshape HTTP requests using features such as HTTP Pipelining that are not normally used by testers. The strange behaviour of web servers with different technologies will be reviewed using HTTP versions 1.1, 1.0, and 0.9 before HTTP v2 becomes too popular! Some of these techniques might come in handy when dealing with a dumb WAF or load balancer that blocks your attacks.
Presented @ BSides Manchester 2017 & SteelCon 2017
Building Cloud-Native App Series - Part 2 of 11
Microservices Architecture Series
Event Sourcing & CQRS,
Kafka, Rabbit MQ
Case Studies (E-Commerce App, Movie Streaming, Ticket Booking, Restaurant, Hospital Management)
Dr. Strangelove, or how I learned to love plugin developmentUlrich Krause
Building a plugin for the Notes client is hard and you need to be a rocket scientist to write a simple menu extension. This is exactly, what I thought, when I first heard of plugin development. In this session, you will learn, how to setup an Eclipse environment, connect it to your Notes Client for debugging and testing, and finally deploy your plugin to your users. Become familiar with the basics, and you will no longer be scared.
La vita nella corsia di sorpasso; A tutta velocità, XPages!Ulrich 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.
Relatore per la sessione:
Ulrich Krause
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
Seit Version 8.5.x ist es mit der XPages-Technologie einfach möglich, Applikationen unter Lotus Notes/Domino „wirklich“ webfähig zu machen.
Wie aber fange ich an? An einem praktischen Beispiel werden die Grundlagen der XPages-Entwicklung erklärt.
Zielgruppe: Alle, die einen Einstieg in das Thema suchen
Kenntnisse: Es sind keine speziellen Vorkenntnisse nötig.
Wer sich mit XPages-Entwicklung beschäftigt, wird über Kurz oder Lang auch auf OpenNTF und die eXtension Library stoßen.
Was ist die eXtension Library und wie kann ich die Erweiterungen in meiner Entwicklungsumgebung nutzen?
Wie können mir die zahlreichen Custom Controls auf OpenNTF helfen, den Entwicklungsaufwand zu reduzieren?
Seit Juli 2011 gibt es die Möglichkeit, aus XPages heraus auf relationale Datenbanken zuzugreifen. Was wird dazu benötigt und wie sieht der Zugriff in der Praxis aus?
Zielgruppe: Teilnehmer mit Grundlagenkenntnissen in der XPages-Entwicklung
Kenntnisse: Grundlagenkenntnisse in der XPages-Entwicklung
In loser Folge werden Tipps und Tricks aus allen Bereichen der Programmierung in Lotus Notes/Domino vorgestellt. @Formula, LotusScript, XPages, LS2CApi.
Wie konfiguriere ich den Domino Designer?
Welche kostenlosen Tools können mir meine Arbeit erleichtern?
Warum ist es wichtig, richtig zu "dimmen"?
Richtext kann mit LotusScript im Backend nicht in Richtext eingefügt werden. Oder etwa doch? @Transform / @Sort. Was kann man denn damit machen?
8.5.3, was gibt es Neues im Bereich @Formula / LotusScript.
Zielgruppe sind alle, die sich mit Applikationsentwicklung beschäftigen. Anfänger und "alte Hasen"; es ist für jeden etwas dabei.
Kenntnisse: Grundlagen der Entwicklung in Lotus Notes/Domino
Vortrag zur Entwicklung von Applikationen mit XPages. Der Vortrag wurde am 18.05.2011 im Rahmen des Arbeitskreises Anwendungsentwicklung auf der DNUG 2011 in Bonn gehalten.
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.
The Autobahn Has No Speed Limit - Your XPages Shouldn't Either!Teamstudio
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.
How to get the maximum performance from your AEP server. This will discuss ways to improve execution time of short running jobs and how to properly configure the server depending on the expected number of users as well as the average size and duration of individual jobs. Included will be examples of making use of job pooling, Database connection sharing, and parallel subprotocol tuning. Determining when to make use of cluster, grid, or load balanced configurations along with memory and CPU sizing guidelines will also be discussed.
In order to obtain the best performance possible out of your AEP server, the core architecture provides methods to reuse job processes multiple times. This talk will cover how the mechanism functions, what performance improvements you might expect as well as what potential problems you might encounter, how to use pooling in protocols and applications, and how the administrator or package developers can configure and debug specialized job pools for their particular applications
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!
The venerable Servlet Container still has some performance tricks up its sleeve - this talk will demonstrate Apache Tomcat's stability under high load, describe some do's (and some don'ts!), explain how to performance test a Servlet-based application, troubleshoot and tune the container and your application and compare the performance characteristics of the different Tomcat connectors. The presenters will share their combined experience supporting real Tomcat applications for over 20 years and show how a few small changes can make a big, big difference.
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.
SharePoint Saturday San Antonio: SharePoint 2010 PerformanceBrian Culver
Is your farm struggling to server your organization? How long is it taking between page requests? Where is your bottleneck in your farm? Is your SQL Server tuned properly? Worried about upgrading due to poor performance? We will look at various tools for analyzing and measuring performance of your farm. We will look at simple SharePoint and IIS configuration options to instantly improve performance. I will discuss advanced approaches for analyzing, measuring and implementing optimizations in your farm.
Configuring Apache Servers for Better Web PerormanceSpark::red
Apache is the most popular web server in the world, yet its default configuration can't handle high traffic. Learn how to setup Apache for high performance sites and leverage many of its available modules to deliver a faster web experience for your users. Discover how Apache can max out a 1 Gbps NIC and how to serve over 140,000 pages per minute with a small Apache cluster. This presentation was given by Spark::red's founding partner Devon Hillard in March 2012 at the Boston Web Performance Meetup.
(ATS4-PLAT01) Core Architecture Changes in AEP 9.0 and their Impact on Admini...BIOVIA
AEP 9.0 will see several changes to the core infrastructure which will require changes to the way the server is managed as well as new deployment options that may affect the ways that protocol developers deliver content to their users. We will cover the addition of Tomcat as a new side by side service with Apache, new administration features: exporting and importing server configurations, maintenance mode, and new deployment options: HTTPS and HTTP only modes, deploying behind reverse proxies, and HTTP load balancing.
(ATS6-PLAT07) Managing AEP in an enterprise environmentBIOVIA
Accelrys Enterprise Platform use within an Enterprise environment spans from Power users of Pipeline Pilot to web applications and High Performance Computing. Managing the balance between productivity and enterprise policies can be tricky. This session will focus on exposing the tools and processes needed by administrators to enable users to be productive, yet allowing IT to remain in control.
What is new in Notes & Domino Deleopment V10.xUlrich Krause
Slides for my siession at DNUG46 in Essen, Germany. 04.-05-MAY-2019.
The session was all about the new classes added in V10.x of Notes/Domino. FP2 changes are included.
When Plato Left The Cave - A brief history of Lotus NotesUlrich Krause
Jump back in time to 1974. In a Harvard dormitory, Bill Gates, future cofounder of Microsoft, is goofing off playing poker and pinball. Over in India, Steve Jobs, future cofounder of Apple, has shaved his head and is wandering around seeking enlightenment. Out in Hawaii, Steve Case, future cofounder and head of AOL Time Warner, is busy writing album reviews for his Honolulu high school newspaper. While these future billionaire CEOs of Internet-industry behemoths are busy enjoying their last teenage years, at a university town in Illinois the 'Net' has already arrived. Indeed: it's in full swing!
In the following years the germ cell of Lotus Notes began to grow and to evolve to the world's leading groupware application.
Follow the timeline from the past to present in the history of Lotus Notes / Domino.
When Plato Left The Cave - A brief history of Lotus Notes
Jump back in time to 1974. In a Harvard dormitory, Bill Gates, future cofounder of Microsoft, is goofing off playing poker and pinball. Over in India, Steve Jobs, future cofounder of Apple, has shaved his head and is wandering around seeking enlightenment. Out in Hawaii, Steve Case, future cofounder and head of AOL Time Warner, is busy writing album reviews for his Honolulu high school newspaper. While these future billionaire CEOs of Internet-industry behemoths are busy enjoying their last teenage years, at a university town in Illinois the 'Net' has already arrived. Indeed: it's in full swing!
In the following years the germ cell of Lotus Notes began to grow and to evolve to the world's leading groupware application.
Follow the timeline from the past to present in the history of Lotus Notes / Domino.
Wie oft haben Sie schon in Foren gelesen: "Das geht nicht mit Bordmitteln; das muss man mit der C API machen". Schön und gut, aber wie geht das? Welche Tools benötige ich, und wo bekomme ich diese her? Die Session gibt einen Überblick über die Anwendungsgebiete der C / C++ API für Lotus Notes / Domino und erläutert die Installation einer Entwicklungsumgebung. Neben der Erstellung von C Programmen wird auch der direkte Aufruf von Funktionen aus Lotusscript heraus erläutert.
Praktische Beispiele sollen dem Entwickler den Einstieg in die Programmierung mit der C / C++ API für Lotus Notes / Domino erleichtern. Level: Einsteiger, die sich auch in Zeiten von XPages, JAVA und SSJS noch an das "Urgestein C" herantrauen.
The Lotus Code Cookbook - Ulrich Krause
Tipps, Tipps, Tipps ... Die Session behandelt kein zentrales Thema. In loser Folge werden Tipps und Tricks aus allen Bereichen der Programmierung in Lotus Notes / Domino vorgestellt. @Formula, LotusScript, Java, JavaScript, LS2CApi.
Zielgruppe sind Alle, die sich mit Applikationsentwicklung beschäftigen. Anfänger und "alte Hasen"; es ist für jeden etwas dabei.
Are your servers running out of disk space? Do you have more than one bit like attachment stored in your databases? Does a standard task like fixup lasts for ages or does your backup still runs during working hours? Do you have quota enabled and your users are asking for more space?
If you can answer one or more of these questions with YES, than this session is for you.
Maximize the disk space savings provided by Domino Attachment and Object Service (DAOS) and ensure that your environment is properly configured for best performance with this feature. Save more space by simply enabling design and document compression. Make sure that your attachments use best compression too. Reduce network bandwidth when replicating databases between servers and increase mail quotas without using more disk space.
Target audience is administrators or decision makers who want to know more about some older but not yet used space savers and especially about DAOS.
Presentation held on 30-Mar-2010 at the BLUG conference in Brussels.
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.
UiPath Test Automation using UiPath Test Suite series, part 3DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 3. In this session, we will cover desktop automation along with UI automation.
Topics covered:
UI automation Introduction,
UI automation Sample
Desktop automation flow
Pradeep Chinnala, Senior Consultant Automation Developer @WonderBotz and UiPath MVP
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
JMeter webinar - integration with InfluxDB and GrafanaRTTS
Watch this recorded webinar about real-time monitoring of application performance. See how to integrate Apache JMeter, the open-source leader in performance testing, with InfluxDB, the open-source time-series database, and Grafana, the open-source analytics and visualization application.
In this webinar, we will review the benefits of leveraging InfluxDB and Grafana when executing load tests and demonstrate how these tools are used to visualize performance metrics.
Length: 30 minutes
Session Overview
-------------------------------------------
During this webinar, we will cover the following topics while demonstrating the integrations of JMeter, InfluxDB and Grafana:
- What out-of-the-box solutions are available for real-time monitoring JMeter tests?
- What are the benefits of integrating InfluxDB and Grafana into the load testing stack?
- Which features are provided by Grafana?
- Demonstration of InfluxDB and Grafana using a practice web application
To view the webinar recording, go to:
https://www.rttsweb.com/jmeter-integration-webinar
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.
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.
Connector Corner: Automate dynamic content and events by pushing a buttonDianaGray10
Here is something new! In our next Connector Corner webinar, we will demonstrate how you can use a single workflow to:
Create a campaign using Mailchimp with merge tags/fields
Send an interactive Slack channel message (using buttons)
Have the message received by managers and peers along with a test email for review
But there’s more:
In a second workflow supporting the same use case, you’ll see:
Your campaign sent to target colleagues for approval
If the “Approve” button is clicked, a Jira/Zendesk ticket is created for the marketing design team
But—if the “Reject” button is pushed, colleagues will be alerted via Slack message
Join us to learn more about this new, human-in-the-loop capability, brought to you by Integration Service connectors.
And...
Speakers:
Akshay Agnihotri, Product Manager
Charlie Greenberg, Host
Search and Society: Reimagining Information Access for Radical FuturesBhaskar Mitra
The field of Information retrieval (IR) is currently undergoing a transformative shift, at least partly due to the emerging applications of generative AI to information access. In this talk, we will deliberate on the sociotechnical implications of generative AI for information access. We will argue that there is both a critical necessity and an exciting opportunity for the IR community to re-center our research agendas on societal needs while dismantling the artificial separation between the work on fairness, accountability, transparency, and ethics in IR and the rest of IR research. Instead of adopting a reactionary strategy of trying to mitigate potential social harms from emerging technologies, the community should aim to proactively set the research agenda for the kinds of systems we should build inspired by diverse explicitly stated sociotechnical imaginaries. The sociotechnical imaginaries that underpin the design and development of information access technologies needs to be explicitly articulated, and we need to develop theories of change in context of these diverse perspectives. Our guiding future imaginaries must be informed by other academic fields, such as democratic theory and critical theory, and should be co-developed with social science scholars, legal scholars, civil rights and social justice activists, and artists, among others.
State of ICS and IoT Cyber Threat Landscape Report 2024 previewPrayukth K V
The IoT and OT threat landscape report has been prepared by the Threat Research Team at Sectrio using data from Sectrio, cyber threat intelligence farming facilities spread across over 85 cities around the world. In addition, Sectrio also runs AI-based advanced threat and payload engagement facilities that serve as sinks to attract and engage sophisticated threat actors, and newer malware including new variants and latent threats that are at an earlier stage of development.
The latest edition of the OT/ICS and IoT security Threat Landscape Report 2024 also covers:
State of global ICS asset and network exposure
Sectoral targets and attacks as well as the cost of ransom
Global APT activity, AI usage, actor and tactic profiles, and implications
Rise in volumes of AI-powered cyberattacks
Major cyber events in 2024
Malware and malicious payload trends
Cyberattack types and targets
Vulnerability exploit attempts on CVEs
Attacks on counties – USA
Expansion of bot farms – how, where, and why
In-depth analysis of the cyber threat landscape across North America, South America, Europe, APAC, and the Middle East
Why are attacks on smart factories rising?
Cyber risk predictions
Axis of attacks – Europe
Systemic attacks in the Middle East
Download the full report from here:
https://sectrio.com/resources/ot-threat-landscape-reports/sectrio-releases-ot-ics-and-iot-security-threat-landscape-report-2024/
Neuro-symbolic is not enough, we need neuro-*semantic*Frank van Harmelen
Neuro-symbolic (NeSy) AI is on the rise. However, simply machine learning on just any symbolic structure is not sufficient to really harvest the gains of NeSy. These will only be gained when the symbolic structures have an actual semantics. I give an operational definition of semantics as “predictable inference”.
All of this illustrated with link prediction over knowledge graphs, but the argument is general.
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
Keynote at DIGIT West Expo, Glasgow on 29 May 2024.
Cheryl Hung, ochery.com
Sr Director, Infrastructure Ecosystem, Arm.
The key trends across hardware, cloud and open-source; exploring how these areas are likely to mature and develop over the short and long-term, and then considering how organisations can position themselves to adapt and thrive.
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.
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Life In The FastLane: Full Speed XPages
1. Life In The Fast Lane
Full Speed XPages
March , 21. – 22. 2013
Faculty Club, Leuven, Belgium
Ulrich Krause, BCC Unternehmensberatung GmbH
Matthew Fyleman, We4IT
2. About: Matthew Fyleman
Lotus Notes/Domino Developer since 1993
Senior Developer at We4IT GmbH
Recently focused entirely on XPages
development
Working on We4IT's XPages framework
Also on Offline capabilities for We4IT’s mobile
framework
3. About: Ulrich Krause
Lotus Notes/Domino Developer since 1993
Senior Software Architect at BCC
OpenNTF Contributor
OpenNTF Board of Directors
IBM Champion 2011/2012/2013
Blog http://www.eknori.de
Notes Forum (http://www.atnotes.de)
4. Agenda
Performance, what factors affect it?
Java vs. JavaScript
Looping through Documents, ViewNavigator vs.
GetNextDocument
Stringbuilder vs. Concat (+)
JSF Lifecycle Listener
Partial Update / Partial Execute
Variable Resolver
Tools
6. Hardware
The hardware used has a significant influence on performance.
There are 3 key elements:
• CPU
• Main Memory
• Hard Disk
7. Hardware
CPU
• Cores / Clock / Cache
• Poor response time
Main Memory
• Limit defined by the operating system
• Scalability
Weak CPU AND Low Memory
• Poor overall performance
• Poor response times
• Server "hangs"
8. 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
9. 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
10. 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 memory allocation (heap size) & garbage collector
• CPU time, competition between threads, gives slower response times
• Threads, limited to 40 by default, configurable in Domino Administrator
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.
11. 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
12. General Performance Options
notes.ini
• HTTPJVMMaxHeapSizeSet=1
• HTTPJVMMaxHeapSize=256M
• Should be set to ¼ of the available RAM
Domino Administrator
• HTTP server "Enable logging to" disabled
• HTTP server thread count – defaults to 40
Remember, enabling the debugger affects performance
• JavaEnableDebug=1
• JavaDebugOptions=transport=dt_socket,server=y,suspend=n,address=8000
• JavascriptEnableDebug=1 ( Version 9 )
13. 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)
14. XPages Design Optimizations
Simple actions vs links or button with window.location JS
Reduce server phase processing
• Use partial update where possible
• Use partial execute where possible
• Use disableValidators & immediate event
Minimize work in rendered / visible computations
• Use variable resolver
Repeats & Views
• Use viewEntry.getColumnValue instead of viewEntry.getDocument.getColumn
• Use Domino View data source dataCache property where possible
15. XPages Design Optimizations
Load-time vs Runtime
• Using loaded vs rendered
• ExtLib Dynamic Content
– allows partial re-loading so more use of load-time optimizations
Loading resources in the browser
• CSS & browser JS
– extract to separate files. Minify & compress files
• Images
– use correct size & format. Use CSS Image Sprites as possible
16. 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
18. XPages Pre-Load
XPagesPreload=1
New Feature in Notes / Domino 8.5.3
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
19. XPages Pre-Load
• 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
• 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
20. Scoped Variables
applicationScope
• Are visible for all users of one application. Expires some time after the last user
used an applicationScope variable.
That means 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.
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.
23. XPages Lifecycle Listener
What happens in each phase of the JSF lifecycle?
Ulrich Krause: http://openntf.org/XSnippets.nsf/snippet.xsp?id=a-simple-lifecyclelistener-
25. When to Execute - # vs $
#
• Executed every time the page is rendered
• Use for values that are likely to change
$
• Executed when the page is first loaded
• Use for values that don't change
26. DataContext
dataContexts can be thought of as global variables
dataContext's value can be computed dynamically or on page
load
• So you can use ${javascript:@Today()} and run it once rather than running
a function each time.
dataContexts can be scoped to any level that datasources can
• XPage, Custom Control or Panel
• you can set a dataContext in a panel in a repeat control, to avoid multiple
references to a NotesDocument's item
dataContexts are referenced using EL
• So at no point in the references do you run SSJS, so it's not having to go
through the SSJS parser
27. DataContext - Pitfall
Issue with data context variables if they are bound dynamically.
• They will be recomputed again and again, even when in Partial Execution
mode and if they are not in use (http://hasselba.ch/blog/?p=1112)
29. Partial Refresh / Update (Pro)
Reduced control processing in the render response phase
• Means less work on the server
– render response is the most intensive phase
Smaller response from server.
• means reduced network usage
Better browser experience
• rest of the page is still visible while waiting for a response
• inserting small sections into the page is much faster than reloading a full page.
30. Partial Refresh / Update (Cons)
Dependancy outside of the partial update area
• Other areas of the control tree are not processed,so any SSJS scripts in those
other controls will not be run.
• Enabling Partial Update where it was previously full update may lead to
functional problems
Only one area may be partial updated by default
• In CSJS you can schedule later partial updates of related areas, but any
concurrent requests will wait for exclusive access to the server-side control
tree before processing on the server
http://www.timtripcony.com/blog.nsf/d6plinks/TTRY-
84B6VP
31. Partial Execution
Reduced control processing in the 3 data-processing phases
• Means less work on the server, faster response times
Dependancy on Edit Box values outside of the exec area
• Submitted values from Edit Boxes and/or other input controls in other areas of
the control tree are not processed, so any control values and document fields
in those other areas will not be updated. Enabling Partial Exec where it was
previously full execution may lead to functional problems where values are
out-of date in the onclick script or in the redisplayed page.
onclick Event Handler must be in the exec area
• The applyRequestValues phase prepares for the invokeApplication phase.The
onclick simple action or SSJS script won't occur if outside the partial exec area
32. Partial Execution
execMode only added in 8.5.1 (not in 8.5.0)
execId slightly difficult to select in Designer
• Select your button, in the Outline view, toggle open the button, select the child
Event Handler control, then set the execId property on the Event Handler.
• [Better UI proposed in Notes/Domino Next – in the Events tab]
33. disableValidators / immediate
disableValidators
• JSF life cycle through all phases (1-6)
• But requests will not validate the data
• Converters continue to work.
• Items in documents will be updated
• Sven Hasselbach - "Disable all validators at once" (
http://hasselba.ch/blog/?p=1106)
• Immediate
• 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
34. Minimize work in rendered / visible computation
Most properties, like CSS “style” are only computed in the
renderResponse
Edit Box and input “value” properties are used in Data Processing
phases & renderResponse
Data Source properties are computed during renderResponse &
results are cached for the next request's Data Processing &
invokeApplication phases
35. Minimize work in rendered / visible computation
The rendered property is computed in all 5 lifecycle phases
Avoid re-computing values in every rendered property
• @DbLookup, @DbColumn, getDocumentByKey
• In the rendered property, save the computed boolean to a viewScope
variable
36. Using loaded vs rendered
Loaded
• is only computed once in the createView phase
• not re-computed in the 5 usual phases
• false means the control is not created. So it can never be rendered.
• true means the control is added to the control tree.
• You can still compute rendered when loaded evaluates to true.
Compute the loaded property on conditions
• where you could compute the rendered property and save it to the view
scope
• it would never need to be recomputed for the rest of the interaction with
this page
37. Images
Use correct file type depending on content
• JPEG for complexed 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
38. CSS Image Sprites
Use CSS Image Sprites
• If you have multiple small images, make a single larger image containing
the smaller images
• And use CSS to display just the relevant subset image at a location in the
page
• For semantically significant sprites, provide an accessibility “title” attribut
(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
40. XPages Toolbox
XPages based Application
• Runs on the Domino server or the Notes client
• An NSF needs to be installed on the Domino server/Notes client
• A profiler jar file should be added to the JVM launch options
Measures the CPU performance and the memory allocation
Available from OpenNTF.org
• Free open source project
• Search for “XPages Toolbox”
Extended in 8.5.2 to support Backend classes profiling
http://www.openntf.org/internal/home.nsf/project.xsp?action=openDocument&name=XPages%20Toolbox
42. 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
44. 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
• Heap memory usage will be a subset of process memory, but heap dumps are
only a snapshot
45. 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, step into code.
• Use the Eclipse Java debugger.
• In Dominonotes.ini add these 2 options:
• JavaEnableDebug=1
• JavaDebugOptions=transport=dt_socket,server=y,suspend=n,address=8000
47. XAgent – SSJS
Get all „Contacts“ into a NotesDocumentCollection, loop the collection and build the
JSON by reading the values from items in the document
49. XAgent – SSJS – UNID from 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
51. XAgent – SSJS - SingleItem
Get all „Contacts“ into a NotesDocumentCollection, loop the collection and get the
JSON from an item on the document. The JSON is calculated on document save
55. 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
String text= System.out.println("x:"+x+" y:"+y);
"line 1n"+
"line 2n"+
"line 3";
56. StringBuilder vs String.concat
When to use StringBuilder over '+' (String.concat()) ?
• use StringBuilder whenever you assemble a String in a loop
• Just keep in mind that '+' isn't always a good idea
http://kaioa.com/node/59
57. XAgent – SSJS – ViewNavigator + StringBuilder
loop thru a view and get the JSON from a view column. Use a StringBuilder to concat
the JSON
61. Themes
Single Document Containing References to all your CSS Resources
• resource sections reference the CSS files used
• control section define what CSS classes are applied to specific controls
XML Based and Easy To Learn
• creating a new theme document prefills sample content
Can Extend Other Themes
• <theme extends="webstandard">
• will automatically include all the resource and control definitions from that
theme built-in themes
• webstandard, notes, oneUI
62. Themes
Create your own themes from scratch.
Creating a theme that extends from the webstandard or another
supplied theme will include extra stylesheets and styles that you
might not need.
Be prepared to spend more time writing css though
Change the server page persistence setting to keep the current page in memory. Strictly speaking, keeping all pages in memory provides the best performance, but it tends to be downright wasteful of memory. When only the current page is kept in memory, as a user navigates from page to page (as opposed to firing events against the page they're already on... even if it's a full refresh event), it serializes the state of the previous page to disk. If a subsequent event is fired against that previous page, then that page's state is retrieved from disk and loaded back into memory. But this scenario only occurs if the application loads a new page in a new window or tab, and the user later switches back to the original window and interacts with it again. In typical navigation scenarios, once the user has opened a new page, the previous page instance no longer exists... even if they navigate back to the same page again, it's a new instance of that page. Hence, keeping all pages in memory essentially guarantees at least a temporary memory leak. All of that storage is eventually released, of course, but in the meantime the server is consuming memory it will never need again that would be better served storing whatever you're explicitly caching in scope variables.
JavaScript/CSS Aggregation feature For performance reasons, the XPages runtime now features a new option that dynamically aggregates multiple Dojo modules, or multiple CSSs into a single file. This results in the following performance improvements:a decrease in requests sent from the browser to the server an increase in user performance, particularly in the context of networks with high latency an increase in the speed of JS/CSS parsing from the browser the freeing up of server connections to fulfill other requests As an extreme example of the saving, let's say the XPages Extension Library is using the page DWA_ListView.xsp. Without the aggregator enabled, 82 requests are made to the server. With the aggregator enabled, the count decreases to 6 requests, including the Ajax request that gets the data. Also, a test run on processing time might see changes from ~4 sec to ~800 ms. To allow you to actvate this option, XPages now feature a new runtime option, which can be set in xsp.properties (database or server level). This option is xsp.resources.aggregate=true It can also be set in Domino Designer from the Application Properties - XPages tab by checking the Use runtime optimized JavaScript and CCS resources option.
XPages Preload options New options designed to improve the startup performance of XPages applications have been added to this release. A preference can be set that preloads the XPages runtime on the Domino server and Notes client. Additionally, specific XPages applications may also be preloaded. The preferences are set as entries in the NOTES.INI file and have the following form: XPagesPreload=1 XPagesPreloadDB=myServer!!myDb.nsf/myXPage.xsp,myLocalDb.nsf/test.xsp The XPagesPreload entry causes an extensive list of XPages runtime Java classes to be preloaded, so they are available in memory when an application is opened by a user. The XPagesPreloadDB preference lets a comma separated list of applications be specified, with or without a specific XPage extension. Again, any required classes are loaded when the server or client starts up and are thus available as soon as any declared application is accessed by a user. The benefit of this may be more evident when running in remote mode on the Notes client, i.e. the XPages is running on the client but the application itself resides on a remote server. In this instance, the Java classes in the application (XPages, custom controls) need to be loaded across the network in order to be executed in the local XPD web container. Preloading such applications produces more responsive initial user experience.
First and foremost, become intimately familiar with the so-called "scope variables". The nature and use of these are documented in detail elsewhere, so I won't belabor that here. But the better you understand what information is appropriate to store in each scope - and that you can store complex object structures, not just "string-to-string" mapping - and the more you take advantage of this, the faster the application's response will be. This is because you're limiting disk I/O as much as possible... the more frequently the application can just pull whatever data the user is requesting from RAM, instead of querying the database every time, the faster the application will be. This is why you want lots and lots of RAM. :) Of course, you don't want to be gratuitous with your memory storage, which is why it's crucial to understand which scope is appropriate for which type of data... when you get the hang of this, Domino will clean up these memory caches for you automatically. If you find that you're running out of memory, but you're confident your scope storage is reasonably optimized, tweak the application properties to clear the application scope periodically. The higher the frequency you set, the more you can cache in all the scopes without bursting the heap... but if you find you're needing to set this to a frequency of less than an hour, revisit what you're actually storing, because it's probably out of control.
Wherever possible, change your expressions from dynamic bindings to page load bindings. This is just a fancy way of saying that ${database.title} is always better than #{database.title}. The $ means that the expression is only calculated once per page instance... # means it's recalculated as often as needed - sometimes several times within the same request, depending upon what value is bound to the expression. So obviously you can't just change all your expressions to $... input controls bound to form items, for instance, should remain #. But if you have computed text displaying the application's title (as in the above example), that value is obviously unlikely to change during any given page instance, so change it to a $ expression, and then the server only has to evaluate it once. Combine this optimization with thorough scope caching, and it's easy to see how this can really speed up page load times and event execution response. This gets particularly noticeable when dealing with repeat controls: each time a user navigates to the next page of a repeat, if that repeat's value is a # binding, it has to recalculate that value... change it to a $, and it only loads the collection once. Even if the event the user triggered has nothing to do with the repeat, the server has to recalculate all # bindings, so if the repeat's value is a #, it still has to pull the collection again even though the user wasn't explicitly interacting with the repeat.
will tend to see out-of-date values. To see up-to-date but not-converted values use: var editBox1 = getComponent('editBox1'); var value = editBox1.getSubmittedValue(); if( null == value ) value = editBox1.getValue();