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
This document outlines an agenda for a presentation on Test Driven Development (TDD) best practices. The agenda includes sections on an overview and introduction to TDD, what TDD is and the process, challenges of TDD, learning and best practices for sustaining TDD, frameworks and variations of TDD, and a question and answer period. Some key best practices discussed are writing tests before code, focusing tests on functionality rather than code structure, and establishing governance and training to ensure proper adoption of TDD.
Introduction to react native with reduxMike Melusky
This document provides an introduction and overview of React Native with Redux. It begins with an introduction to React components, props, and state. It then covers building a sample React Native app and advanced concepts like navigation and Redux. The document compares React Native to other native frameworks and provides resources for learning more. It was presented at Philly.NET on March 24, 2018 and discusses topics like React basics, React Native, native navigation solutions, and integrating Redux.
CollabSphere 2021 - DEV114 - The Nuts and Bolts of CI/CD With a Large XPages ...Jesse Gallagher
Though Domino makes working with build servers and CI/CD pipelines difficult, it is possible to do so even with complex applications. This session will discuss the specifics of using several OpenNTF projects - NSF ODP Tooling, the Jakarta XPages Runtime, and XPages Jakarta EE Support - as well as open-source technologies such as Docker to build, test, and deploy Java-based Domino applications for testing and staging. This builds on previous sessions about the NSF ODP Tooling and Maven generally.
The Dark Side of Single Page ApplicationsDor Kalev
The story of all the pitfalls we had while transferring FTBpro.com from the good old web to a Backbone single page application... and all the great solutions we've came up with
Automate Your Data, Free Your Mind by Aaron SwerleinQA or the Highway
This document provides an overview of database automation using the Ruby Gem Sequel. It discusses using Sequel to connect to databases, define models and tables, and perform CRUD operations. Examples are provided for setting up connections, querying with SQL and Ruby methods, and running tests with Cucumber. Benefits covered include increased speed, coverage, and maintaining living documentation.
Writing better code: How the Netbeans IDE Helps you Write, Test and Debug Javaidrsolutions
Here is the presentation: Writing better code: How the Netbeans IDE Helps you Write, Test and Debug Java which Georgia Ingham and Sophia Matarazzo presented at Javaone2015
Hybrid Mobile Development with Apache Cordova and Ryan Cuprak
Apache Cordova is used to wrap HTML5 applications into native mobile applications that can access device capabilities. A demo application was shown that used Cordova for the mobile portion and Java EE 7 on the server side. Key technologies discussed included Cordova plugins, RESTful web services, Java API for JSON, and Java API for WebSockets for bidirectional communication between the mobile app and server. jQuery Mobile was also mentioned as a potential UI framework.
Take Your XPages Development to the Next Levelbalassaitis
Slide deck from IBM ConnectED 2015 session BP105: Take Your XPages Development to the Next Level
This intermediate-level session is for anyone who has a little bit of XPages experience. In the session, we dug deeper into a number of features that are built into XPages and can help improve application responsiveness, streamline design with code reuse, and take more control over the output that is generated by XPages controls.
There was way too much content to fit into a single session, but the slide deck includes all of the extra material that was prepared.
Topics:
Application Responsiveness
Server-Side JavaScript
Modifying Component Output
Java
Custom Controls
Debugging Tips
Event Handlers
Dojo
This document outlines the modules in a course on programming and the web for beginners. The course introduces HTML to structure web pages, CSS for styling, and JavaScript for programming. Students will learn the seven-step process for developing programs, write functions in JavaScript, and complete a final mini-project creating an e-portfolio website using the skills learned. By the end of the course students will be able to make basic web pages, think critically about solving problems, and recognize debugging as part of the scientific method.
Web Development with Delphi and React - ITDevCon 2016Marco Breveglieri
This document provides an overview of modern web development with Delphi and React. It discusses how traditional "fat" web applications are no longer preferred and introduces key concepts in modern web development like JavaScript, HTML5 APIs, DOM, jQuery, single page applications, and React. It explains what React is and core React concepts like components, properties, state, virtual DOM, JSX syntax and lifecycle methods. It also discusses how Delphi can be used to build backend APIs that a React front-end can communicate with.
This document provides an overview of RequireJS, an asynchronous JavaScript module loader. It discusses how RequireJS allows for defining modules and their dependencies, and loading them asynchronously. Key points include:
- RequireJS implements the Asynchronous Module Definition (AMD) specification for defining modules and dependencies.
- It handles loading modules and their dependencies in the proper order, even if they load asynchronously and out of order.
- This avoids issues with global namespace pollution and allows modules to be loaded on demand.
- The document covers the basic RequireJS API, different module definition patterns, and how to configure RequireJS for development and production.
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!
Laravel and Codeigniter, both PHP frameworks have their own sets of pros and cons.
Opt for a cost-effective and efficient framework is important in your project development.
Reach out to our expert team to get appropriate details on choosing the best website frameworks.
Testing Rapidly Changing Applications With Self-Testing Object-Oriented Selen...seleniumconf
Dan Cuellar discusses strategies for writing automated tests that are robust and maintainable in the face changing codebases and features. These include separating logical test actions from direct controller calls, centralizing site elements and logic, adding self-testing capabilities, consolidating product actions into abstracted libraries, and creating platform-agnostic test scripts. The goal is to design tests that can adapt easily without extensive rework when underlying systems evolve rapidly.
This document provides an overview and introduction to ASP.NET 5 and MVC 6. It discusses the history of ASP.NET and outlines improvements in ASP.NET 5, including being cross-platform, modular, faster, and using NuGet packages. MVC 6 unifies MVC, Web API, and Web Pages and uses view components instead of child actions. Tag helpers generate markup and validation helpers are also introduced.
This document provides an overview and outline of an extensive Java programming course. The course aims to teach students Java syntax, object-oriented programming concepts, exceptions, generics, streams, concurrency, data structures, and build tools to make them proficient Java developers. It contains 12 sections covering these topics through over 12 hours of video lessons. The target audience is programmers and developers looking to build software and systems using Java.
Have you ever cried yourself to sleep unable to find the cause of a horrendous bug in your node app? Cry no more, your tears will be reshaped into blinding swords as we explore uncharted territories laced with mystical creatures.
JavaScript debugging is an often avoided topic due to the uncertainty of how best to accomplish it and the lack of powerful introspective tools. This talk will explore new territory and showcase tools that help you debug complex and difficult issues in your node or frontend app. Libraries and tools such as node-inspector, Time-Travel Debugging, Visual Studio Code, vorlon.js, Vantage and memory leak catchers will be used to slay dragons.
No more shall you fear building complex apps with JavaScript!
Why You Should Use MERN Stack for Startup Apps?Pixel Crayons
If you have no idea what MERN stands for, check out my explanation in this article first! This insightful guide will help you learn about the benefits of using the MERN stack and why it’s perfect for your next web application project.
In a nutshell, The MERN Stack refers to four technologies: MongoDB, ExpressJS, ReactJS, and Node.js. MongoDB is a document-oriented DBMS that allows you to store data in JSON-like format.
The document discusses using offline storage on mobile devices by leveraging HTML, JavaScript, and technologies like Cordova, PouchDB, and CouchDB. It summarizes the evolution of HTML5 offline storage standards including Web Storage, Web SQL, and IndexedDB. It then outlines an approach to building a mobile app that works offline by storing data locally on the device using IndexedDB and syncing with a remote CouchDB database using PouchDB when an internet connection is available.
The document summarizes an event called UKLUG 2012 that was held from September 2-4, 2012 at Cardiff University in Wales. It focused on XPages topics beyond the basics. The agenda included sessions on JavaScript/CSS aggregation, enabling pre-load for XPages, Java design elements, JAR design elements, Faces-config design elements, themes, and the XPages Extension Library.
The document summarizes Ulrich Krause's presentation on the latest developments from OpenNTF. The presentation covered:
- An overview of OpenNTF, its 800+ open source projects and 200k annual downloads.
- Current OpenNTF initiatives like CollaborationToday, XPages.info, contests and webinars.
- Specific projects like Bootstrap4XPages, org.openntf.domino, Tika for XPages, and Unplugged XPages mobile controls.
- The OpenNTF intellectual property policy and ways for developers to get involved.
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.
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.
This document provides an agenda for a conference on XPages Beyond the Basics held from February 2-3, 2012 in Denmark. The agenda includes topics like JavaScript/CSS aggregation, pre-loading for XPages, Java design elements, themes, the XPages Extension Library, relational database support using JDBC, exporting data to Excel/PDF, and more. The document also introduces the speaker, Ulrich Krause, an IBM Champion and experienced Notes/Domino developer.
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.
The document provides an agenda for a performance optimization workshop for XPages applications to be held from March 11-13, 2013 at the Maritim Hotel in Gelsenkirchen, Germany. Topics to be covered include performance issues related to Java vs JavaScript, view navigation vs getting documents, string concatenation vs StringBuilder, partial updates/execution, scoped variables, and tools for profiling XPages applications. The presenter is listed as Ulrich Krause, an experienced Notes/Domino developer and IBM Champion.
The document announces the Entwicklercamp 2012 event from March 26-28 at the Maritim Hotel in Gelsenkirchen, Germany. It will feature sessions on XPages, the Extension Library, pre-loading for XPages, Java design elements, themes, and more. The event is organized by Ulrich Krause of is@web, an IBM Champion for collaboration solutions.
Life in the fast lane. Full speed XPagesUlrich Krause
This document summarizes Ulrich Krause's presentation titled "AD103 - Life in the Fast Lane – Full Speed XPages!". The presentation discusses various factors that affect XPages performance and provides optimizations that can be made to improve performance, including:
- Hardware specifications like CPU, memory, and disk speed have a significant impact on performance.
- Design optimizations like using partial update/execute, minimizing computations in rendered properties, and leveraging viewScope can improve performance.
- JavaScript and CSS optimizations like aggregation and image sprites reduce page size and load time.
- Tools like the XPages Toolbox profiler can help analyze memory usage and CPU performance to identify bottlenecks.
The document discusses techniques for compacting, compressing, and de-duplicating data in Domino applications to reduce storage usage and improve performance. It covers compacting databases, compressing design elements, documents, and attachments, using DAOS to store attachments externally, and tools for defragmenting files.
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.
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.
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.
Intro to XPages for Administrators (DanNotes, November 28, 2012)Per Henrik Lausten
This document introduces XPages for administrators. It discusses:
- What XPages are and examples of XPages applications
- The administrator's important role in the application lifecycle in helping developers and users
- Tips for maximizing performance such as hardware configuration, server settings, caching, and preloading applications
- Application development best practices including supported Dojo and OneUI versions
- Configuring and administering Domino Directory, Internet sites, and security settings
- Tools for troubleshooting, monitoring, and impressing developers like the Extension Library and demo app
This document discusses various techniques for optimizing Drupal performance, including:
- Defining goals such as faster page loads or handling more traffic
- Applying patches and rearchitecting content to optimize at a code level
- Using tools like Apache Benchmark and MySQL tuning to analyze performance bottlenecks
- Implementing solutions like caching, memcached, and reverse proxies to improve scalability
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.
This document provides best practices for optimizing Blackboard Learn performance. It recommends deploying for performance from the start, optimizing platform components continuously through measurements, using scalable deployments like 64-bit architectures and virtualization, improving page responsiveness through techniques like gzip compression and image optimization, optimizing the web server, Java Virtual Machine, and database through configuration and tools. It emphasizes the importance of understanding resource utilization, wait events, execution plans, and statistics/histograms for database optimization.
node.js 실무 - node js in practice by Jesang YoonJesang Yoon
Sharing 4 years of experience about node.js - A google chrome V8 engine javascript based web server technology. This slide covers about wide range of knowledge about node.js learned from 4 years of production, experiment, test & failures
4년 동안 node.js 서버 프로그래밍을 경험한 내용을 간략하게 정리해 보았습니다. node.js 를 접하시는 분들에게 도움이 되었으면 합니다.
Developing High Performance Web Apps - CodeMash 2011Timothy Fisher
This document provides an overview of techniques for developing high performance web applications. It discusses why front-end performance matters, and outlines best practices for optimizing page load times, using responsive interfaces, loading and executing JavaScript efficiently, and accessing data. The presentation recommends tools for monitoring and improving performance, such as Firebug, Page Speed, and YSlow.
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
The document provides guidance on learning about automotive embedded systems through a 10 part series. It recommends first studying parts on real-time operating system basics, OSEK/VDX, AUTOSAR basics, and automotive protocols. Then users should validate their understanding and solve practice questions. The document directs readers to online materials and emphasizes the importance of depth of learning to become professional in the field of embedded systems.
This document discusses processes and threads in operating systems. It defines a process as a program under execution with its own virtual CPU and state. Processes are created through system initialization, forking, or by user request. Processes transition between running, ready, blocked, and terminated states. A process control block stores process information. Context switching involves saving one process's state and restoring another's. Threads are lightweight processes within a process that share the process's resources. Threads provide concurrency and efficient communication compared to processes.
Cómo se diseña una base de datos que pueda ingerir más de cuatro millones de ...javier ramirez
En esta sesión voy a contar las decisiones técnicas que tomamos al desarrollar QuestDB, una base de datos Open Source para series temporales compatible con Postgres, y cómo conseguimos escribir más de cuatro millones de filas por segundo sin bloquear o enlentecer las consultas.
Hablaré de cosas como (zero) Garbage Collection, vectorización de instrucciones usando SIMD, reescribir en lugar de reutilizar para arañar microsegundos, aprovecharse de los avances en procesadores, discos duros y sistemas operativos, como por ejemplo el soporte de io_uring, o del balance entre experiencia de usuario y rendimiento cuando se plantean nuevas funcionalidades.
This document summarizes an agenda for an XPages performance masterclass. The agenda covers many factors that affect XPages performance including hardware, network performance, client limitations, and coding practices. It also discusses tools for optimizing performance such as JavaScript/CSS aggregation, scoped variables, data contexts, partial refresh vs partial execution, and XPages preloading. Specific techniques are demonstrated such as reducing unnecessary computations in the JSF lifecycle and using scoped variables to dynamically compute values.
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.
This document discusses techniques for compacting, compressing, and de-duplicating data in Domino applications to reduce storage usage and improve performance. It covers compacting application design elements and documents, compressing document bodies, recompressing attachments using LZ1, planning DAOS rollout with the DAOS Estimator tool, configuring and implementing DAOS to store attachments externally, and resolving issues that can occur with DAOS. The goal is to leverage existing storage, reduce application sizes, and avoid redundant attachments.
- The document discusses Document Attachment Object Service (DAOS), a feature introduced in Domino 8.5 that separates attachments from documents to reduce database size and improve performance.
- Key aspects of DAOS include setting up a separate repository for attachments, enabling it on servers and applications, and benefits like reduced storage, faster tasks, and less network traffic.
- Considerations for DAOS include prerequisites, transaction logging, backup procedures, and its effects on replication and other features.
The Hilarious Saga of Ships Losing Their Voices: these gigantic vessels that rule the seas can't even keep track of themselves without our help. When their beloved AIS system fails, they're rendered blind, deaf and dumb - a cruel joke on their supposed maritime prowess.
This document, in its grand ambition, seeks to dissect the marvel that is maritime open-source intelligence (maritime OSINT). Real-world case studies will be presented with the gravitas of a Shakespearean tragedy, illustrating the practical applications and undeniable benefits of maritime OSINT in various security scenarios.
For the cybersecurity professionals and maritime law enforcement authorities, this document will be nothing short of a revelation, equipping them with the knowledge and tools to navigate the complexities of maritime OSINT operations while maintaining a veneer of ethical and legal propriety. Researchers, policymakers, and industry stakeholders will find this document to be an indispensable resource, shedding light on the potential and implications of maritime OSINT in safeguarding our seas and ensuring maritime security and safety.
-------------------------
This document aims to provide a comprehensive analysis of maritime open-source intelligence (maritime OSINT) and its various aspects: examining the ethical implications of employing maritime OSINT techniques, particularly in the context of maritime law enforcement authorities, identifying and addressing the operational challenges faced by maritime law enforcement authorities when utilizing maritime OSINT, such as data acquisition, analysis, and dissemination.
The analysis will offer a thorough and insightful examination of these aspects, providing a valuable resource for cybersecurity professionals, law enforcement agencies, maritime industry stakeholders, and researchers alike. Additionally, the document will serve as a valuable resource for researchers, policymakers, and industry stakeholders seeking to understand the potential and implications of maritime OSINT in ensuring maritime security and safety.
Maritime Open-Source Intelligence (OSINT) refers to the practice of gathering and analyzing publicly available information related to maritime activities, vessels, ports, and other maritime infrastructure for intelligence purposes. It involves leveraging various open-source data sources and tools to monitor, track, and gain insights into maritime operations, potential threats, and anomalies. Maritime Open-Source Intelligence (OSINT) is crucial for capturing information critical to business operations, especially when electronic systems like Automatic Identification Systems (AIS) fail. OSINT can provide valuable context and insights into vessel operations, including the identification of vessels, their positions, courses, and speeds
A. Data Sources
• Vessel tracking websites and services (e.g., MarineTraffic, VesselFinder) that provide real-time and historical data on ship movements, positions, and d
UiPath Community Day Amsterdam: Code, Collaborate, ConnectUiPathCommunity
Welcome to our third live UiPath Community Day Amsterdam! Come join us for a half-day of networking and UiPath Platform deep-dives, for devs and non-devs alike, in the middle of summer ☀.
📕 Agenda:
12:30 Welcome Coffee/Light Lunch ☕
13:00 Event opening speech
Ebert Knol, Managing Partner, Tacstone Technology
Jonathan Smith, UiPath MVP, RPA Lead, Ciphix
Cristina Vidu, Senior Marketing Manager, UiPath Community EMEA
Dion Mes, Principal Sales Engineer, UiPath
13:15 ASML: RPA as Tactical Automation
Tactical robotic process automation for solving short-term challenges, while establishing standard and re-usable interfaces that fit IT's long-term goals and objectives.
Yannic Suurmeijer, System Architect, ASML
13:30 PostNL: an insight into RPA at PostNL
Showcasing the solutions our automations have provided, the challenges we’ve faced, and the best practices we’ve developed to support our logistics operations.
Leonard Renne, RPA Developer, PostNL
13:45 Break (30')
14:15 Breakout Sessions: Round 1
Modern Document Understanding in the cloud platform: AI-driven UiPath Document Understanding
Mike Bos, Senior Automation Developer, Tacstone Technology
Process Orchestration: scale up and have your Robots work in harmony
Jon Smith, UiPath MVP, RPA Lead, Ciphix
UiPath Integration Service: connect applications, leverage prebuilt connectors, and set up customer connectors
Johans Brink, CTO, MvR digital workforce
15:00 Breakout Sessions: Round 2
Automation, and GenAI: practical use cases for value generation
Thomas Janssen, UiPath MVP, Senior Automation Developer, Automation Heroes
Human in the Loop/Action Center
Dion Mes, Principal Sales Engineer @UiPath
Improving development with coded workflows
Idris Janszen, Technical Consultant, Ilionx
15:45 End remarks
16:00 Community fun games, sharing knowledge, drinks, and bites 🍻
Project Delivery Methodology on a page with activities, deliverablesCLIVE MINCHIN
I've not found a 1 pager like this anywhere so I created it based on my experiences. This 1 pager details a waterfall style project methodology with defined phases, activities, deliverables, assumptions. There's nothing in here that conflicts with commonsense.
Securiport Gambia is a civil aviation and intelligent immigration solutions provider founded in 2001. The company was created to address security needs unique to today’s age of advanced technology and security threats. Securiport Gambia partners with governments, coming alongside their border security to create and implement the right solutions.
Network Auto Configuration and Correction using Python.pptxsaikumaresh2
- Implemented Zero Touch Provisioning, Network Topology Mapper, and Root Cause Analysis using Python, GNS3, Netmiko, SSH, OSPF, and Graphviz.
- Developed a Python script to automate network discovery based on Core Router IP and login details, significantly reducing manual intervention.
- Enhanced network visualization by generating detailed network graphs, aiding in quick network analysis and troubleshooting.
Discover practical tips and tricks for streamlining your Marketo programs from end to end. Whether you're new to Marketo or looking to enhance your existing processes, our expert speakers will provide insights and strategies you can implement right away.
Welcome to our third live UiPath Community Day Amsterdam! Come join us for a half-day of networking and UiPath Platform deep-dives, for devs and non-devs alike, in the middle of summer ☀.
📕 Agenda:
12:30 Welcome Coffee/Light Lunch ☕
13:00 Event opening speech
Ebert Knol, Managing Partner, Tacstone Technology
Jonathan Smith, UiPath MVP, RPA Lead, Ciphix
Cristina Vidu, Senior Marketing Manager, UiPath Community EMEA
Dion Mes, Principal Sales Engineer, UiPath
13:15 ASML: RPA as Tactical Automation
Tactical robotic process automation for solving short-term challenges, while establishing standard and re-usable interfaces that fit IT's long-term goals and objectives.
Yannic Suurmeijer, System Architect, ASML
13:30 PostNL: an insight into RPA at PostNL
Showcasing the solutions our automations have provided, the challenges we’ve faced, and the best practices we’ve developed to support our logistics operations.
Leonard Renne, RPA Developer, PostNL
13:45 Break (30')
14:15 Breakout Sessions: Round 1
Modern Document Understanding in the cloud platform: AI-driven UiPath Document Understanding
Mike Bos, Senior Automation Developer, Tacstone Technology
Process Orchestration: scale up and have your Robots work in harmony
Jon Smith, UiPath MVP, RPA Lead, Ciphix
UiPath Integration Service: connect applications, leverage prebuilt connectors, and set up customer connectors
Johans Brink, CTO, MvR digital workforce
15:00 Breakout Sessions: Round 2
Automation, and GenAI: practical use cases for value generation
Thomas Janssen, UiPath MVP, Senior Automation Developer, Automation Heroes
Human in the Loop/Action Center
Dion Mes, Principal Sales Engineer @UiPath
Improving development with coded workflows
Idris Janszen, Technical Consultant, Ilionx
15:45 End remarks
16:00 Community fun games, sharing knowledge, drinks, and bites 🍻
Ensuring Secure and Permission-Aware RAG DeploymentsZilliz
In this talk, we will explore the critical aspects of securing Retrieval-Augmented Generation (RAG) deployments. The focus will be on implementing robust secured data retrieval mechanisms and establishing permission-aware RAG frameworks. Attendees will learn how to ensure that access control is rigorously maintained within the model when ingesting documents, ensuring that only authorized personnel can retrieve data. We will also discuss strategies to mitigate risks of data leakage, unauthorized access, and insider threats in RAG deployments. By the end of this session, participants will have a clearer understanding of the best practices and tools necessary to secure their RAG deployments effectively.
Planetek Italia is an Italian Benefit Company established in 1994, which employs 120+ women and men, passionate and skilled in Geoinformatics, Space solutions, and Earth science.
We provide solutions to exploit the value of geospatial data through all phases of data life cycle. We operate in many application areas ranging from environmental and land monitoring to open-government and smart cities, and including defence and security, as well as Space exploration and EO satellite missions.
Airports, banks, stock exchanges, and countless other critical operations got thrown into chaos!
In an unprecedented event, a recent CrowdStrike update had caused a global IT meltdown, leading to widespread Blue Screen of Death (BSOD) errors, and crippling 8.5 million Microsoft Windows systems.
What triggered this massive disruption? How did Microsoft step in to provide a lifeline? And what are the next steps for recovery?
Swipe to uncover the full story, including expert insights and recovery steps for those affected.
How CXAI Toolkit uses RAG for Intelligent Q&AZilliz
Manasi will be talking about RAG and how CXAI Toolkit uses RAG for Intelligent Q&A. She will go over what sets CXAI Toolkit's Intelligent Q&A apart from other Q&A systems, and how our trusted AI layer keeps customer data safe. She will also share some current challenges being faced by the team.
Leading Bigcommerce Development Services for Online RetailersSynapseIndia
As a leading provider of Bigcommerce development services, we specialize in creating powerful, user-friendly e-commerce solutions. Our services help online retailers increase sales and improve customer satisfaction.
Leading Bigcommerce Development Services for Online Retailers
La vita nella corsia di sorpasso; A tutta velocità, XPages!
1. La vita nella corsia di
sorpasso
Ulrich Krause, Milano, 27 Settembre 2013
A tutta velocità, XPages!
2. Life in the Fast Lane – Full Speed XPages!
About: me
Administrator /Developer since 1993
Senior Software Architect at BCC
OpenNTF Contributor
OpenNTF Board of Directors
Blog http://www.eknori.de
IBM Champion 2011/2012/2013
Notes Forum (http://www.atnotes.de)
3. Life in the Fast Lane – Full Speed XPages!
Agenda
What factors affect Performance?
Java vs. JavaScript
ViewNavigator vs. GetNextDocument
Stringbuilder vs. Concat (+)
JSF Lifecycle Listener
Partial Update / Partial Execute
Variable Resolver
Tools
4. Life in the Fast Lane – Full Speed XPages!
XPages Request
5. Life in the Fast Lane – Full Speed XPages!
Hardware
The hardware used has a significant influence on
performance. There are 3 key elements:
• CPU
• Main Memory
• Hard Disk
6. Life in the Fast Lane – Full Speed XPages!
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"
7. Life in the Fast Lane – Full Speed XPages!
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
8. Life in the Fast Lane – Full Speed XPages!
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
9. Life in the Fast Lane – Full Speed XPages!
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
10. Life in the Fast Lane – Full Speed XPages!
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.
11. Life in the Fast Lane – Full Speed XPages!
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. Life in the Fast Lane – Full Speed XPages!
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,addre
ss=8000
13. Life in the Fast Lane – Full Speed XPages!
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. Life in the Fast Lane – Full Speed XPages!
XPages Design Optimizations
Use 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
When using Repeats & Views
• Use viewEntry.getColumnValue instead of
viewEntry.getDocument.getColumn
• Use Domino View data source dataCache property where possible
15. Life in the Fast Lane – Full Speed XPages!
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. Life in the Fast Lane – Full Speed XPages!
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
17. Life in the Fast Lane – Full Speed XPages!
JavaScript/CSS Aggregation
18. Life in the Fast Lane – Full Speed XPages!
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
19. Life in the Fast Lane – Full Speed XPages!
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
20. Life in the Fast Lane – Full Speed XPages!
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
21. Life in the Fast Lane – Full Speed XPages!
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.
22. Life in the Fast Lane – Full Speed XPages!
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.
23. Life in the Fast Lane – Full Speed XPages!
Caching with Application Scope
24. Life in the Fast Lane – Full Speed XPages!
JSF Lifecycle
25. Life in the Fast Lane – Full Speed XPages!
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-
26. Life in the Fast Lane – Full Speed XPages!
XPages Masterclass
http://www.openntf.org/internal/home.nsf/project.xsp?action=openDocument&name=XPages%20Master
class
27. Life in the Fast Lane – Full Speed XPages!
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
28. Life in the Fast Lane – Full Speed XPages!
DataContext
Can be thought of as global variables
Value can be computed dynamically or on page
load
• You can use ${javascript:@Today()} and run it once rather than
running a function each time.
Can be scoped to any level that datasources 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
Is Referenced using EL
• At no point in the references do you run SSJS
• Not having to go through the SSJS parser
29. Life in the Fast Lane – Full Speed XPages!
DataContext - Pitfall
Do not bind data context variables dynamically.
• They will be recomputed again and again, even when in partial
execution mode and if they are not in use
30. Life in the Fast Lane – Full Speed XPages!
DataContext - Pitfall
31. Life in the Fast Lane – Full Speed XPages!
Partial Refresh / Update (Pro)
Reduced control processing in the render response
phase
• Means less work on the server
• RenderResponse 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.
32. Life in the Fast Lane – Full Speed XPages!
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
33. Life in the Fast Lane – Full Speed XPages!
Partial Refresh / Update (Cons)
Refreshing more than one target ID in a single
partial refresh event
• http://www.timtripcony.com/blog.nsf/d6plinks/TTRY-84B6VP
34. Life in the Fast Lane – Full Speed XPages!
Partial Execution
Reduced 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.
35. Life in the Fast Lane – Full Speed XPages!
Partial Execution (cont.)
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
36. Life in the Fast Lane – Full Speed XPages!
Partial Execution
execMode 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]
37. Life in the Fast Lane – Full Speed XPages!
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
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
38. Life in the Fast Lane – Full Speed XPages!
Minimize work in rendered/ visible
computationMost properties, like CSS “style” are only computed
in the RenderResponse phase
Edit Box and input “value” properties are used in
Data Processing phases and RenderResponse
phase
Data Source properties are computed during
RenderResponse
• Results are cached for the next request's Data Processing and
InvokeApplication phases
39. Life in the Fast Lane – Full Speed XPages!
Minimize work in rendered / visible
computationThe 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
40. Life in the Fast Lane – Full Speed XPages!
Using loaded vs rendered
Loaded
• is only computed once in the createView phase
• not re-computed in the other 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
41. Life in the Fast Lane – Full Speed XPages!
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
42. Life in the Fast Lane – Full Speed XPages!
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”
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
43. Life in the Fast Lane – Full Speed XPages!
CSS Image Sprite Sample
http://www.w3schools.com/css/tryit.asp?filename=trycss_sprites_im
g
44. Life in the Fast Lane – Full Speed XPages!
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=openDo
cument&name=XPages%20Toolbox
Extended in 8.5.2 to support backend classes
profiling
45. Life in the Fast Lane – Full Speed XPages!
XPages Toolbox
46. Life in the Fast Lane – Full Speed XPages!
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
47. Life in the Fast Lane – Full Speed XPages!
Heapdump / Javadump Analyzer
48. Life in the Fast Lane – Full Speed XPages!
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
49. Life in the Fast Lane – Full Speed XPages!
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 objectsUse the Eclipse Java
debugger.
• In Dominonotes.ini add these 2 options:
• JavaEnableDebug=1
• JavaDebugOptions=transport=dt_socket,server=y,suspend=n,address=
8000
50. Life in the Fast Lane – Full Speed XPages!
Optimization – Step By Step
51. Life in the Fast Lane – Full Speed XPages!
XAgent – SSJS
Get all „Contacts“ into a NotesDocumentCollection,
loop the collection and build the JSON by reading
the values from items in the document
52. Life in the Fast Lane – Full Speed XPages!
XAgent – SSJS
53. Life in the Fast Lane – Full Speed XPages!
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
54. Life in the Fast Lane – Full Speed XPages!
XAgent – SSJS – UNID from Item
55. Life in the Fast Lane – Full Speed XPages!
XAgent – SSJS - SingleItem
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
56. Life in the Fast Lane – Full Speed XPages!
XAgent – SSJS - SingleItem
57. Life in the Fast Lane – Full Speed XPages!
XAgent – SSJS – ViewNavigator
loop thru a view and get the JSON from a view
column.
58. Life in the Fast Lane – Full Speed XPages!
XAgent – SSJS – ViewNavigator
59. Life in the Fast Lane – Full Speed XPages!
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
60. Life in the Fast Lane – Full Speed XPages!
StringBuilder vs String.concat
When to use StringBuilder over '+' (String.concat())
?
• use StringBuilder whenever you assemble a String in a loop
• Keep in mind that '+' isn't always a good idea
http://kaioa.com/node/59
61. Life in the Fast Lane – Full Speed XPages!
XAgent – SSJS – ViewNavigator +
StringBuilderloop thru a view and get the JSON from a view
column. Use a StringBuilder to concat the JSON
62. Life in the Fast Lane – Full Speed XPages!
XAgent – SSJS – ViewNavigator +
StringBuilder
63. Life in the Fast Lane – Full Speed XPages!
XAgent – Java
loop thru a view and get the JSON from a view
column. Use a StringBuilder to concat the JSON +
use Java instead of SSJS
64. Life in the Fast Lane – Full Speed XPages!
XAgent – Java
65. Life in the Fast Lane – Full Speed XPages!
Themes
Single document containing references to all your
CSS resources
• resource sections reference the CSS files
• 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
66. Life in the Fast Lane – Full Speed XPages!
Themes
Create your own themes from scratch.
• Extending an existing theme will include extra stylesheets and styles
that you might not need.
Be prepared to spend more time writing css though
67. Life in the Fast Lane – Full Speed XPages!
Load Resources from Themes
Global Application / Configuration properties