This document discusses using client-side grids to improve applications. It provides an overview of several grid technologies including Dojo, Gridx, Sencha Ext JS, Kendo UI Grid, and jQuery. For each technology, it discusses the grid itself, recommendations from Brad, potential downsides, and steps to get started. It also includes code samples and descriptions of features for Dojo, Gridx, and Ext JS grids. The document aims to help developers choose and implement client-side grids.
MWLUG 2015 - AD114 Take Your XPages Development to the Next Levelbalassaitis
Slides from MWLUG session on XPages development. Digging into features already available in XPages, but not as widely used. Topics include JSON RPC, taking control of component output, SSJS, Java, custom controls, event handlers, and more.
Connect 2016-Move Your XPages Applications to the Fast LaneHoward Greenberg
Are your XPages applications performing like a Florida senior citizen driving in the left lane at 55 mph? A key to speeding up your XPages applications is knowledge of the JSF lifecycle, partial refresh and partial execution. This session will cover these concepts and then apply them to optimizing an XPages application. Learn how to use tools to measure the performance of your XPages and determine where the bottlenecks are. Several sample applications will be analyzed along with alternative programming choices to improve their performance. Learn how to dramatically increase your XPages performance and make your users happy - you might even get a speeding ticket after this session!
Access Data from XPages with the Relational ControlsTeamstudio
Did you know that Domino and XPages allows for the easy access of relational data? These exciting capabilities in the Extension Library can greatly enhance the capability of your applications and allow access to information beyond Domino. Howard and Paul will discuss what you need to get started, what controls allow access to relational data, and the new @Functions available to incorporate relational data in your Server Side JavaScript programming.
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
Silicon Valley JUG - How to generate customized java 8 code from your databaseSpeedment, Inc.
The best code is the one you never need to write. Using code generation and automated builds you can minimize the risk of human error when developing software, but how do you maintain control over code when large parts of it is handed over to a machine? In this tutorial, you will learn how to use open-source software to create and control code automation. You will see how you can generate a completely object-oriented domain model by automatically analyzing your database schemas. Every aspect of the process is transparent and configurable, giving you as a developer 100% control of the generated code. This will not only increase your productivity, but also help you build safer and more maintainable Java applications.
MWLUG 2015 - AD114 Take Your XPages Development to the Next Levelbalassaitis
Slides from MWLUG session on XPages development. Digging into features already available in XPages, but not as widely used. Topics include JSON RPC, taking control of component output, SSJS, Java, custom controls, event handlers, and more.
Connect 2016-Move Your XPages Applications to the Fast LaneHoward Greenberg
Are your XPages applications performing like a Florida senior citizen driving in the left lane at 55 mph? A key to speeding up your XPages applications is knowledge of the JSF lifecycle, partial refresh and partial execution. This session will cover these concepts and then apply them to optimizing an XPages application. Learn how to use tools to measure the performance of your XPages and determine where the bottlenecks are. Several sample applications will be analyzed along with alternative programming choices to improve their performance. Learn how to dramatically increase your XPages performance and make your users happy - you might even get a speeding ticket after this session!
Access Data from XPages with the Relational ControlsTeamstudio
Did you know that Domino and XPages allows for the easy access of relational data? These exciting capabilities in the Extension Library can greatly enhance the capability of your applications and allow access to information beyond Domino. Howard and Paul will discuss what you need to get started, what controls allow access to relational data, and the new @Functions available to incorporate relational data in your Server Side JavaScript programming.
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
Silicon Valley JUG - How to generate customized java 8 code from your databaseSpeedment, Inc.
The best code is the one you never need to write. Using code generation and automated builds you can minimize the risk of human error when developing software, but how do you maintain control over code when large parts of it is handed over to a machine? In this tutorial, you will learn how to use open-source software to create and control code automation. You will see how you can generate a completely object-oriented domain model by automatically analyzing your database schemas. Every aspect of the process is transparent and configurable, giving you as a developer 100% control of the generated code. This will not only increase your productivity, but also help you build safer and more maintainable Java applications.
JDK.IO 2016 (http://jdk.io)
Java EE 7 introduced a new batch processing API. This session will go over how to use the batch processing API introduced with Java EE 7. This API is makes it easy to implement long running data/compute intensive jobs which need to be scheduled or initiated on-demand. Basics of the API will be demonstrated via code samples. The API will also be compared to Spring Batching and Hadoop to provide context and guidance on when these technologies are appropriate.
How to JavaOne 2016 - Generate Customized Java 8 Code from Your Database [TUT...Malin Weiss
The best code is the one you never need to write. Using code generation and automated builds, you can minimize the risk of human error when developing software, but how do you maintain control over code when large parts of it are handed over to a machine? In this tutorial, you will learn how to use open source software to create and control code automation. You will see how you can generate a completely object-oriented domain model by automatically analyzing your database schemas. Every aspect of the process is transparent and configurable, giving you, as a developer, 100 percent control of the generated code. This will not only increase your productivity but also help you build safer, more maintainable Java applications and is a perfect solution for Microservices.
SenchaCon 2016: A Look Ahead: Survey Next-Gen Modern Browser APIs - Shikhir S...Sencha
Using modern browsers, developers can now create web apps with capabilities that were only possible in native or hybrid apps. Web apps can now access hardware devices such as microphones, cameras, GPS, accelerometers, VR displays, and many others, without using any plugins. Using Web Bluetooth, web app developers can now communicate with nearly any type of hardware device. In this session, we’ll survey a sample of the W3C standards that give developers access to next-gen capabilities via web apps. Topics will include Service Worker, Push API, WebRTC, Web Bluetooth, Web Crypto, Web Speech, Web Notifications, and others.
Introduction to CQRS - command and query responsibility segregationAndrew Siemer
A high level introduction to CQRS (command and query responsibility segregation), CQS (command query separation), DDD (domain driven design), DDD-D ...with distributed, and how all those weave together.
Take a Trip Into the Forest: A Java Primer on Maps, Trees, and Collections Teamstudio
Wondering how to take advantage of Java and managed beans in XPages? To do this requires knowing how to store data in Java objects and a good understanding of maps, trees, lists, and sets. No, we're not talking about Google Maps or those big green things in forests, but different Java interfaces!
Come learn from Howard Greenberg of TLCC as he discusses different programming models to use when storing application configuration information, speeding up lookups to Domino data and feeding data to repeat and table controls. Learn how to build reports from different data sources. Plus, Howard will also look at working with dates and numbers in Java and Domino. Finally, he will review the Domino Java APIs and an alternative, the OpenNTF Domino API.
Introduction
Web Storage
WebSQL
IndexedDB
File System Access
Final Considerations
This presentation has been developed in the context of the Mobile Applications Development course, DISIM, University of L'Aquila (Italy), Spring 2014.
http://www.ivanomalavolta.com
Atlanta JUG - Integrating Spring Batch and Spring IntegrationGunnar Hillert
This talk is for everyone who wants to efficiently use Spring Batch and Spring Integration together. Users of Spring Batch often have the requirements to interact with other systems, to schedule the periodic execution Batch jobs and to monitor the execution of Batch jobs. Conversely, Spring Integration users periodically have Big Data processing requirements, be it for example the handling of large traditional batch files or the execution of Apache Hadoop jobs. For these scenarios, Spring Batch is the ideal solution. This session will introduce Spring Batch Integration, a project that provides support to easily tie Spring Batch and Spring Integration together. We will cover the following scenarios:
Launch Batch Jobs through Spring Integration Messages
Generate Informational Messages
Externalize Batch Process Execution using Spring Integration
Create Big Data Pipelines with Spring Batch and Spring Integration
[2015/2016] Local data storage for web-based mobile appsIvano Malavolta
This presentation has been developed in the context of the Mobile Applications Development course, DISIM, University of L'Aquila (Italy), Spring 2016.
http://www.ivanomalavolta.com
JDK.IO 2016 (http://jdk.io)
Java EE 7 introduced a new batch processing API. This session will go over how to use the batch processing API introduced with Java EE 7. This API is makes it easy to implement long running data/compute intensive jobs which need to be scheduled or initiated on-demand. Basics of the API will be demonstrated via code samples. The API will also be compared to Spring Batching and Hadoop to provide context and guidance on when these technologies are appropriate.
How to JavaOne 2016 - Generate Customized Java 8 Code from Your Database [TUT...Malin Weiss
The best code is the one you never need to write. Using code generation and automated builds, you can minimize the risk of human error when developing software, but how do you maintain control over code when large parts of it are handed over to a machine? In this tutorial, you will learn how to use open source software to create and control code automation. You will see how you can generate a completely object-oriented domain model by automatically analyzing your database schemas. Every aspect of the process is transparent and configurable, giving you, as a developer, 100 percent control of the generated code. This will not only increase your productivity but also help you build safer, more maintainable Java applications and is a perfect solution for Microservices.
SenchaCon 2016: A Look Ahead: Survey Next-Gen Modern Browser APIs - Shikhir S...Sencha
Using modern browsers, developers can now create web apps with capabilities that were only possible in native or hybrid apps. Web apps can now access hardware devices such as microphones, cameras, GPS, accelerometers, VR displays, and many others, without using any plugins. Using Web Bluetooth, web app developers can now communicate with nearly any type of hardware device. In this session, we’ll survey a sample of the W3C standards that give developers access to next-gen capabilities via web apps. Topics will include Service Worker, Push API, WebRTC, Web Bluetooth, Web Crypto, Web Speech, Web Notifications, and others.
Introduction to CQRS - command and query responsibility segregationAndrew Siemer
A high level introduction to CQRS (command and query responsibility segregation), CQS (command query separation), DDD (domain driven design), DDD-D ...with distributed, and how all those weave together.
Take a Trip Into the Forest: A Java Primer on Maps, Trees, and Collections Teamstudio
Wondering how to take advantage of Java and managed beans in XPages? To do this requires knowing how to store data in Java objects and a good understanding of maps, trees, lists, and sets. No, we're not talking about Google Maps or those big green things in forests, but different Java interfaces!
Come learn from Howard Greenberg of TLCC as he discusses different programming models to use when storing application configuration information, speeding up lookups to Domino data and feeding data to repeat and table controls. Learn how to build reports from different data sources. Plus, Howard will also look at working with dates and numbers in Java and Domino. Finally, he will review the Domino Java APIs and an alternative, the OpenNTF Domino API.
Introduction
Web Storage
WebSQL
IndexedDB
File System Access
Final Considerations
This presentation has been developed in the context of the Mobile Applications Development course, DISIM, University of L'Aquila (Italy), Spring 2014.
http://www.ivanomalavolta.com
Atlanta JUG - Integrating Spring Batch and Spring IntegrationGunnar Hillert
This talk is for everyone who wants to efficiently use Spring Batch and Spring Integration together. Users of Spring Batch often have the requirements to interact with other systems, to schedule the periodic execution Batch jobs and to monitor the execution of Batch jobs. Conversely, Spring Integration users periodically have Big Data processing requirements, be it for example the handling of large traditional batch files or the execution of Apache Hadoop jobs. For these scenarios, Spring Batch is the ideal solution. This session will introduce Spring Batch Integration, a project that provides support to easily tie Spring Batch and Spring Integration together. We will cover the following scenarios:
Launch Batch Jobs through Spring Integration Messages
Generate Informational Messages
Externalize Batch Process Execution using Spring Integration
Create Big Data Pipelines with Spring Batch and Spring Integration
[2015/2016] Local data storage for web-based mobile appsIvano Malavolta
This presentation has been developed in the context of the Mobile Applications Development course, DISIM, University of L'Aquila (Italy), Spring 2016.
http://www.ivanomalavolta.com
Okta released their first ever Businesses @ Work report in August 2015. Businesses @ Work uses Okta’s dataset of
thousands of customers, applications, and integrations, and millions of daily logins to understand how organizations
and the people who work for and with them get work done. In this report, we look at which apps, devices, and
services businesses and their people (employees, contractors, partners, and customers) consume every day.
How to create a OSGi Servlet that runs on a Domino server using code from another plugin. Extra is a web app servlet which runs on every other Java Server
Enterprise API : Best practice for World class API ecosystem is an attempt on my part to explain the best practice in deploying API infrastructure in the organization.
Recently we moved and downsized from a large North American urban area to a smaller house in the country. We also downsized the infrastructure of our corporation. Thanks to Cloud, Social and Collaborative technologies, acquaintances in our new locale think we are retired and not working full time.
In our area there is a high concentration of government and other traditional corporate workers – It’s not on their radar that one can work in a cabana on a beach, on a sailboat on a lake, a favorite pub or anywhere like that and still be in the office attending meetings, taking phone calls, being productive and doing it all efficiently. Not to mention the cost savings to be had for employees and employers. This is the Future of Work.
For those of us in the IT world, working this way is taken for granted but now it’s time to share some of these “secrets” with those outside of the tech world.
What the App? : A Modernization Strategy for Your Business ApplicationsJohn Head
Presented at IBM Connect 2016: It's 2016 – your application portfolio is being reviewed and scrutinized. Email and application platforms are being separated. Users' expectations of their work experiences are higher than ever. But you're invested in your Notes & Domino applications – what do you do? Looking through the lens of IBM ESS solutions, we will answer that question by providing a roadmap and experiences to help you choose the best path. We will deep dive into the five aspects of Application Modernization: User Experience, Social, Cloud, Mobile, & Modern Workflow. See demos of actual application transformations and the impact they have within an organization. Learn how new functionality in the products will make your journey easier.
Are You Ready for an Alternative in Application Development?LetsConnect
You and I have been developing applications with the Domino Designer for most of their professional lives. Are we ready for an alternative? Have a look at the Forms Experience Builder. See an introduction to FEB and learn how the Forms Experience Builder compares to the Domino Designer with respect to
– Forms
– Notifications
– Approval Workflows
– Access Management
– Views & Reports
– Cross Browser & Mobile Support
– Data Limitations
– Advanced Programming
– Application Management
– Hardware Requirements
– Cloud Availability
The results will be suprising.
How TELUS used collaboration to change our culture and drive business results LetsConnect
In this 30-minute deep dive, attendees will learn how a culture of collaboration helped TELUS transform how we supported customers, employees and drove business outcomes. Instead of positioning collaborative technology as the solution, TELUS worked to change the culture by introducing the behaviors and leadership model needed to truly become an organization that shared information and expertise across the enterprise.
Regardless of location (TELUS has 44K employees in 8 countries), role or tenure, TELUS team members were expected to demonstrate spirited team work. The deployment of collaborative technologies helped support the evolution from a closed, hierarchical model to a open, transparent culture where employees were empowered to help their peers and customers, develop their own career and
The results speak volumes – employee engagement went from 53%-87%, customer likelihood to recommend jumped 20% and share price more than doubled since 2010.
Paste Viscosity!
Attained by one of three means:
High cement content
High content of Fly Ash, Silica Fume etc
Use of Viscosity Modifying Admixture
Also low water content using HRWR
Building Responsive Applications Using XPagesTeamstudio
Let Connect come to you! In this webinar, Brian Gleeson and Martin Donnelly from the IBM Development Team present their Connect 2016 session.
Bootstrap was integrated into the XPages Extension Library in 2014 and has continued to rapidly evolve ever since. This responsive design capability empowers you to build the slickest Domino Web applications ever - where the user experience dynamically adapts for the desktop, tablet, or smaller mobile devices. Brian and Martin will show you how to quickly and easily transform your old applications into something that will impress your end users (and your boss)!
Are you looking for a better strategy to retire your legacy Lotus Notes applications and migrate them seamlessly to the cloud?
Office 365 & Azure brings best of both the worlds together to simplify and enhance the cloud experience. Office 365 with Azure allows more flexibility and greater business agility. It helps leveraging familiar tools for simple deployment, and user experiences as well as a leaner, controlled model for enterprises. Migration of legacy applications to the cloud gets you and your enterprise out of the business of hosting, supporting and maintaining the applications on your infrastructure.
Aqeel Haider, Vice President of Technology Solutions, WinWire Technologies shares an in-depth view of WinWire’s capabilities to retire and re-platform legacy Lotus applications to Office 365 & Azure.
Webinar Agenda:
An overview of WinWire’s approach in performing an assessment of legacy Lotus Notes applications
How to classify multiple Lotus Notes applications and our methodology around archiving, replacing, or consolidation of such applications
From Our Experience – Lessons Learnt
Optimizing your new application in the cloud
Living on the Grid - Unlock the Power of Dojo Data Grids in XPages - MWLUG 2013balassaitis
Explore the rich functionality of dojo data grids in XPages.
This presentation starts with how to create a Dojo Data Grid and REST service in XPages and discusses the features available with the standard grid.
It proceeds to demonstrate how to convert the grid to a Dojo EnhancedGrid and take advantage of additional plugins for enhanced functionality.
Finally, it demonstrates how to use a Dojo TreeGrid in XPages to create categorized grids with or without calculated totals and counts.
Are you tired of using view panels to display data in XPages? This webinar will show how you can provide a new look and feel and rich functionality with several variations of Dojo data grids. You'll learn about the XPages Dojo Data Grid control and its key features, including infinite scrolling, sorting, and editable cells. Then you'll see how to transform the grid into a Dojo EnhancedGrid and take advantage of enhanced plugins to provide even more functionality, such as multi-rule filtering and context menus. Finally, you'll get a glimpse of how to bypass the grid control in order to create a categorized Dojo TreeGrid.
You'll come away with a myriad of options for providing appealing, interactive, highly functional data grids.
Presenting Data – An Alternative to the View ControlTeamstudio
In this webinar, Paul Della-Nebbia, an IBM Champion, will show how to implement a different alternative for displaying information from Domino views. Paul will cover how to use the Dojo Data Grid (included with XPages) to display a data grid that provides unique features like infinite scrolling, click to sort column headers, adjustable column widths, filtering, and the ability to drag and drop column headers to reorder. As the user scrolls through, the view data is retrieved as needed which improves performance and usability.
How to generate customized java 8 code from your databaseSpeedment, Inc.
Did you know that database classes, that require many lines of Java and SQL code, may be replaced with a single line of Java 8 code? In this tutorial session you will learn how to use standard Java 8 Streams as an alternative to traditional Object Relational Mappers (ORM). We will use the open-source tool Speedment to show how development speed can be increased and how the application code can be more concise and run faster.
As the popularity of PostgreSQL continues to soar, many companies are exploring ways of migrating their application database over. At Redgate Software, we recently added PostgreSQL as an optional data store for SQL Monitor, our flagship monitoring application, after nearly 18 years of being backed exclusively by SQL Server. Knowing that others will be taking this journey in the near future, we'd like to discuss what we learned. In this training, we'll discuss the planning that needs to take place before a migration begins, including datatype changes, PostgreSQL configuration modifications, and query differences. This will be a mix of slides and demo from our own learnings, as well as those of some clients we've helped along the way.
Cassandra Summit 2015 - Building a multi-tenant API PaaS with DataStax Enterp...Restlet
Lessons learned by Restlet when deploying DataStax Enterprise search with APISpark. Presentation by Jerome Louvel and Guillaume Blondeau at the Cassandra Summit 2015. Includes 7 challenges and solutions when deploying DataStax.
JS Fest 2018. Илья Иванов. Введение в React-NativeJSFestUA
Создание нативных мобильных приложений с помощью JavaScript? Без регистрации и WebView? Этот доклад покажет как работает React-Native и заглянет под его капот. Для решения каких задач он был реализован и какие у него существую достоинства и ограничения. Но сперва разберем чем React-Native отличается от гибридных (Hybrid Apps) и прогрессивных (Progressive Web Apps) подходов.
How to Get CNIC Information System with Paksim Ga.pptxdanishmna97
Pakdata Cf is a groundbreaking system designed to streamline and facilitate access to CNIC information. This innovative platform leverages advanced technology to provide users with efficient and secure access to their CNIC details.
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
20 Comprehensive Checklist of Designing and Developing a WebsitePixlogix Infotech
Dive into the world of Website Designing and Developing with Pixlogix! Looking to create a stunning online presence? Look no further! Our comprehensive checklist covers everything you need to know to craft a website that stands out. From user-friendly design to seamless functionality, we've got you covered. Don't miss out on this invaluable resource! Check out our checklist now at Pixlogix and start your journey towards a captivating online presence today.
Essentials of Automations: The Art of Triggers and Actions in FMESafe Software
In this second installment of our Essentials of Automations webinar series, we’ll explore the landscape of triggers and actions, guiding you through the nuances of authoring and adapting workspaces for seamless automations. Gain an understanding of the full spectrum of triggers and actions available in FME, empowering you to enhance your workspaces for efficient automation.
We’ll kick things off by showcasing the most commonly used event-based triggers, introducing you to various automation workflows like manual triggers, schedules, directory watchers, and more. Plus, see how these elements play out in real scenarios.
Whether you’re tweaking your current setup or building from the ground up, this session will arm you with the tools and insights needed to transform your FME usage into a powerhouse of productivity. Join us to discover effective strategies that simplify complex processes, enhancing your productivity and transforming your data management practices with FME. Let’s turn complexity into clarity and make your workspaces work wonders!
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...Neo4j
Leonard Jayamohan, Partner & Generative AI Lead, Deloitte
This keynote will reveal how Deloitte leverages Neo4j’s graph power for groundbreaking digital twin solutions, achieving a staggering 100x performance boost. Discover the essential role knowledge graphs play in successful generative AI implementations. Plus, get an exclusive look at an innovative Neo4j + Generative AI solution Deloitte is developing in-house.
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofsAlex Pruden
This paper presents Reef, a system for generating publicly verifiable succinct non-interactive zero-knowledge proofs that a committed document matches or does not match a regular expression. We describe applications such as proving the strength of passwords, the provenance of email despite redactions, the validity of oblivious DNS queries, and the existence of mutations in DNA. Reef supports the Perl Compatible Regular Expression syntax, including wildcards, alternation, ranges, capture groups, Kleene star, negations, and lookarounds. Reef introduces a new type of automata, Skipping Alternating Finite Automata (SAFA), that skips irrelevant parts of a document when producing proofs without undermining soundness, and instantiates SAFA with a lookup argument. Our experimental evaluation confirms that Reef can generate proofs for documents with 32M characters; the proofs are small and cheap to verify (under a second).
Paper: https://eprint.iacr.org/2023/1886
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.
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIVladimir Iglovikov, Ph.D.
Presented by Vladimir Iglovikov:
- https://www.linkedin.com/in/iglovikov/
- https://x.com/viglovikov
- https://www.instagram.com/ternaus/
This presentation delves into the journey of Albumentations.ai, a highly successful open-source library for data augmentation.
Created out of a necessity for superior performance in Kaggle competitions, Albumentations has grown to become a widely used tool among data scientists and machine learning practitioners.
This case study covers various aspects, including:
People: The contributors and community that have supported Albumentations.
Metrics: The success indicators such as downloads, daily active users, GitHub stars, and financial contributions.
Challenges: The hurdles in monetizing open-source projects and measuring user engagement.
Development Practices: Best practices for creating, maintaining, and scaling open-source libraries, including code hygiene, CI/CD, and fast iteration.
Community Building: Strategies for making adoption easy, iterating quickly, and fostering a vibrant, engaged community.
Marketing: Both online and offline marketing tactics, focusing on real, impactful interactions and collaborations.
Mental Health: Maintaining balance and not feeling pressured by user demands.
Key insights include the importance of automation, making the adoption process seamless, and leveraging offline interactions for marketing. The presentation also emphasizes the need for continuous small improvements and building a friendly, inclusive community that contributes to the project's growth.
Vladimir Iglovikov brings his extensive experience as a Kaggle Grandmaster, ex-Staff ML Engineer at Lyft, sharing valuable lessons and practical advice for anyone looking to enhance the adoption of their open-source projects.
Explore more about Albumentations and join the community at:
GitHub: https://github.com/albumentations-team/albumentations
Website: https://albumentations.ai/
LinkedIn: https://www.linkedin.com/company/100504475
Twitter: https://x.com/albumentations
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfMalak Abu Hammad
Discover how MongoDB Atlas and vector search technology can revolutionize your application's search capabilities. This comprehensive presentation covers:
* What is Vector Search?
* Importance and benefits of vector search
* Practical use cases across various industries
* Step-by-step implementation guide
* Live demos with code snippets
* Enhancing LLM capabilities with vector search
* Best practices and optimization strategies
Perfect for developers, AI enthusiasts, and tech leaders. Learn how to leverage MongoDB Atlas to deliver highly relevant, context-aware search results, transforming your data retrieval process. Stay ahead in tech innovation and maximize the potential of your applications.
#MongoDB #VectorSearch #AI #SemanticSearch #TechInnovation #DataScience #LLM #MachineLearning #SearchTechnology
Building RAG with self-deployed Milvus vector database and Snowpark Container...Zilliz
This talk will give hands-on advice on building RAG applications with an open-source Milvus database deployed as a docker container. We will also introduce the integration of Milvus with Snowpark Container Services.
Threats to mobile devices are more prevalent and increasing in scope and complexity. Users of mobile devices desire to take full advantage of the features
available on those devices, but many of the features provide convenience and capability but sacrifice security. This best practices guide outlines steps the users can take to better protect personal devices and information.
Communications Mining Series - Zero to Hero - Session 1DianaGray10
This session provides introduction to UiPath Communication Mining, importance and platform overview. You will acquire a good understand of the phases in Communication Mining as we go over the platform with you. Topics covered:
• Communication Mining Overview
• Why is it important?
• How can it help today’s business and the benefits
• Phases in Communication Mining
• Demo on Platform overview
• Q/A
Full-RAG: A modern architecture for hyper-personalizationZilliz
Mike Del Balso, CEO & Co-Founder at Tecton, presents "Full RAG," a novel approach to AI recommendation systems, aiming to push beyond the limitations of traditional models through a deep integration of contextual insights and real-time data, leveraging the Retrieval-Augmented Generation architecture. This talk will outline Full RAG's potential to significantly enhance personalization, address engineering challenges such as data management and model training, and introduce data enrichment with reranking as a key solution. Attendees will gain crucial insights into the importance of hyperpersonalization in AI, the capabilities of Full RAG for advanced personalization, and strategies for managing complex data integrations for deploying cutting-edge AI solutions.
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
Securing your Kubernetes cluster_ a step-by-step guide to success !
The Grid the Brad and the Ugly: Using Grids to Improve Your Applications
1. [1207] The Grid, the Brad, and The Ugly:
Using Grids to Improve Your Applications
Brad Balassaitis
Paul Calhoun
2. Paul Calhoun
• Vice President – QDilligence
• CTO – NetNotes Solutions Unlimited
• IBM – Champion 2013-2016
• Been teaching, administering and coding with Notes/Domino
since release 2.
• Been working with XPages since the beta release.
• Spends all spare time showing people cute pictures of his
grandkids !!! (You have been warned !!)
3. Brad Balassaitis
• Senior Consultant for PSC Group
• Certified Notes developer since R4
• IBM Champion 2014 - 2016
• Blog: xcellerant.net
8. Grid Features
• Infinite scrolling or paging
• Columns – change width, rearrange, show/hide
• Sorting
• Filtering
• Expandable detail section
• Inline editing with UI widgets
9. Grid Performance
• Less server-side processing
• Less data sent to browser
Data only – no HTML
• Client-side sorting/filtering
• Asynchronous server interaction
• Virtual Rendering
# of DOM Elements
# Rows View Grid
50 5k 3k
500 37k 29k
5000 353k 290k
# Rows View Grid
50 844 944
500 7,594 944
5000 75,078 944
11. Getting Started
• Add library to WebContent
• Include JS/CSS resources (page/theme level)
• REST service to provide data
• Define columns and create grid
• Add features
13. The Grid
• Built into Domino / XPages via the Extension Library
So it’s “Free” (relatively speaking)
Doesn’t require loading of any additional libraries (Code or styling)
• Doesn’t require extensive knowledge of
Client Side Java Script
CSS
JSON or XML
• Easy to prototype and get into production
14. The Brad
• Brad has already done all the work for you !!
http://xcellerant.net/dojo-grids-in-xpages/
Blog series on using / implementing dojo grids in XPages from
soup to nuts (beginning to end)
15. The Ugly
• Why exactly am I doing this section again?
• It’s not <insert other grid technology> !!
This is mostly subjective and developer preference
• “I already know grid technology “X”, so I won’t use grid technology “Y””
• “X” looks better than “Y”
16. The Parts
• Domino View
• XPage
• Extension Library
Rest Service
Dojo Grid Control
Grid Columns
17. The View
• A Domino View that contains the primary columns to be
displayed in the grid
18. The XPage and Extension Library
• The XPage does NOT have to be in the same .nsf as the data
(view)
• Must have
Extension Library from OPENNTF
or
Domino 8.5.3 Upgrade Pack 1 or above
19. The REST Service
• Add the REST Service control from the Data Access drawer to
the XPage.
• Provide a value for the ‘pathinfo’
attribute
This allows you to test the json
returned from the service from a
a url: xpagename.xsp/pathinfo
• Add a View JSON Service
Click the plus button and choose
xe:viewJsonService
20. The REST Service (cont)
• Set contentType attribute to
application/json
• Set defaultColumns attribute to
true
• Set var attribute value to
variable name that will be used
to access the row data
• Set viewName attribute to the
name of the View that contains
the data for the grid
21. The Dojo Data Grid Control
• Add the Dojo Data Grid control from the Dojo Layout drawer
• Accept or provide an id
• Choose the REST Service
on the same page as the
grid control
22. Add Columns to the Grid Control
• Sample the JSON output from the REST Service
• Use the pathInfo variable from the REST Service definition to
get a sample of the JSON output
• Notice the variables that
are used for the column
names
23. Add Columns to the Grid Control (cont)
• User the variable names from the JSON output as the values
for the field attribute of the Dojo Data Grid Column
• Set a value for the label attribute which will be come the
column header
• Set a width appropriate
to the data being displayed
• Add a Data Grid Column
for every view column to
be displayed in the grid
• Save and Test !!!
27. The Grid: Gridx
• Next-generation Dojo grid
http://oria.github.io/gridx/news/metrics.html (gridx vs dgrid and dojo grid)
• Handle one million+ rows
• Many feature modules
28. The Brad
• Blog series on implementing and using gridx in XPages
http://xcellerant.net/gridx-in-xpages/
34. Gridx - Sample Grid (con’t)
grid = new Grid({
id: "my_gridX",
cacheClass: Cache,
store: store,
structure: columns
});
//Put it into the DOM tree.
grid.placeAt('gridX_Here');
grid.startup();
});
</script>
35. Opening a Document
• Connect an event handler to a row event
• Read the unid from the row data and build a URL
grid.connect(grid, "onRowDblClick", function(eventInfo) {
var unid = grid.row(eventInfo.rowId).item()['@unid'];
location.href = "MyPageName.xsp?action=openDocument&documentId=" + unid;
});
36. Gridx - Adding Feature Modules
• Require a module (AMD or page-level)
• Add it to the grid's modules attribute
<script>
require(["gridx/Grid“, "gridx/modules/ColumnResizer“, "dojo/store/JsonRest“,
"gridx/core/model/cache/Async“, "dojo/domReady!” ], function(Grid, Resizer, JsonRest, Cache) {
....
grid = new Grid({
id: "my_gridX",
cacheClass: Cache,
store: store,
structure: columns,
modules: [
Resizer
]
});
45. Server-Side Updates
• Use client-side code to asynchronously trigger server-side code
and wait for a response
• Two Key Uses:
1. Inline Editing
2. Document Processing
46. Inline Editing
• Require Edit module
• Add Edit module to grid
• Define editable column(s)
editable: true
• Optionally use a UI widget
• Save Changes
50. Inline Editing – Options for Saving Changes
1. Enable Domino Data Service, POST/PATCH updates via XHR
2. RPC Method
Provides opportunity to process as needed (take other action aside
from just direct field update)
Does not require enabling DDS
3. POST to Custom REST service
(Same benefits)
51. Inline Editing – Grid Events
• Edit Events
onBegin - before cell goes into edit mode
• Use to track original value and see whether it changed in onApply
onApply - after cell is edited
• Attaching Event Handlers
Module definition
{
moduleClass: Edit,
onBegin: beforeEdit,
onApply: saveChange
}
52. Inline Editing: Saving Changes
• Requirements
1. SSJS function process the change
2. RPC method to accept UNID, field, value and call the SSJS method
3. Client-side Javascript function to call RPC method
4. Grid event handler
53. Inline Editing: Saving Changes
• 1. SSJS function process the change
function rpcUpdateField (unid, fieldName, fieldValue) {
var doc:NotesDocument = database.getDocumentByUNID(unid);
if (doc != null) {
doc.replaceItemValue(fieldName, fieldValue);
doc.save(true);
return true;
} else {
return false;
}
}
54. Inline Editing: Saving Changes
• 2. RPC method to accept UNID, field, value and call the SSJS method
One line to call SSJS function
<xe:jsonRpcService id="jsonRpcService1" serviceName="rpcGrid">
<xe:this.methods>
<xe:remoteMethod name="updateField” script="rpcUpdateField (unid, fieldName, fieldValue);">
<xe:this.arguments>
<xe:remoteMethodArg name="unid"></xe:remoteMethodArg>
<xe:remoteMethodArg name="fieldName"></xe:remoteMethodArg>
<xe:remoteMethodArg name="fieldValue"></xe:remoteMethodArg>
</xe:this.arguments>
</xe:remoteMethod>
</xe:this.methods>
</xe:jsonRpcService>
55. Inline Editing: Saving Changes
• 3. Client-side Javascript function to call RPC method
• Wait for response and set cell color to green or red
function saveChange() {
...
rpcGrid.updateField(rowUNID, fieldName, newValue).addCallback(function(updateSuccessful) {
if (updateSuccessful) {
node.style.backgroundColor = 'green';
} else {
node.style.backgroundColor = 'red';
}
});
...
58. Processing Multiple Documents
• Inline icon, toolbar button, or header menu action
• Requirements
1. SSJS function process the changes
2. RPC method to accept array of UNIDs and call the SSJS method
3. Client-side Javascript event handler
• Call RPC method and wait for response
• Display growl message
4. Grid event handler
60. The Grid
• One of the most mature / established JS libraries available
• Extensive documentation and support
• Over a dozen grid types
http://examples.sencha.com/extjs/6.0.1/examples/kitchensink/#grids
• Support for “Spreadsheet” style grids including locking columns
and rows
• Built in ability to export to EXCEL
• In-Line Editing, filtering and much, much, much more !!
61. The Brad
• I don’t know ?
• What do you think Brad ?
<pause here for witty comeback from Brad>
62. The Ugly
• It’s not Free
Although there is a Free Trial
Different “levels” from standard to premium
• Standard currently starts at $895 (5 license minimum = $4,475)
• Ext JS is a VERY robust framework (not a bad thing)
BUT… this can make it difficult to pull just the pieces you want
• Not specifically designed to run on Domino/XPages
You have to code everything from scratch
63. The Parts
• Domino View
• Ext JS Libraries and Style Sheets
• XPage
One to render the grid
One XAgent to return the JSON
• Java Code to produce the JSON
64. The View and Libraries
• A Domino View that contains the data to be rendered in the grid
• From the download of Ext JS copy all of the following to the
WebContent folder of the application that will implement the grids
65. The Java Code
• First we need Java code to produce the JSON
• To produce the JSON we need a JSON API
It just so happens there is one that is included in the Extension
Library !!!!
• com.ibm.commons.util.io.json.*
Used to create JSON Objects and Arrays
69. The XAgent
• An XAgent is and XPage that does not render any UI but only
contains code.
It is in essence a Java Servlet
• In the XPages afterRenderResponse event add the following
code
70. The XPage
• The Xpage only has two controls
Script Output Control
• This is where all of the JavaScript will be written
Panel
• This is where the grid will be rendered
71. The XPage Source
• Using the Ext JS API
Define the data model
Set Configuration attributes and required components
72. The XPage Source (cont)
• Using the Ext JS API
Create the data store and point it to the XAgent
73. The XPage Source (cont)
• Using the Ext JS API
Define the grid and it’s attributes
74. The XPage Source (cont)
• The Panel contains a <div> that is used as the target for
rendering the grid
REMINDER- This is all happening CLIENT SIDE !!!
77. The Grid: Kendo UI Grid
• jQuery-based
• Part of Kendo UI (layout, forms, grids, charts/maps, etc)
• Much more modern look and feel (Bootstrap)
• Templates for toolbar, rows, details
• Instantiation: Programmatic, HTML Table, MVVM, Angular
• Bind to local data, remote data, web sockets
• Mobile Components
• Offline
80. The Ugly
• Licensing: $999 per developer
• 100 MB library
30+ MB of examples
Custom builder available with license
2.4 MB js file is actually loaded in browser (+90 k jQuery)
81. Kendo UI Grid - Features
• Sorting
• Filtering
• Grouping
• Reordering, Column Locking
• Paging
• Export to Excel or PDF
• Virtualization
• Persistence
• Hierarchy (Expandable Details)
82. Kendo UI Grid - Features
• Persistence
Programmatically save and restore grid state
Column order
Column widths
Sorting
Filters
Grouping
83. Kendo UI Grid - Features
• Grouping / Categorization
Grid-level property -- groupable: true
Drag column header to top to group
Aggregation
• Define aggregates for a column (count, average, sum, min, max)
Group header templates per column to display aggregate info
84. Kendo UI Grid - Features
• Filtering
Type-specific filtering on one or more columns
Enabled with a single property
Option 1: Popups in column header
• Optional Checkbox selection of one or more column values
Option 2: Filter Row
85. Kendo UI Grid - Features
• Filter Popups
Optional checkbox selection for multiple values
90. Kendo UI Grid
• AMD Issue
As with many jQuery plugins, newer versions of dojo break them
because of amd loading conflicts
• http://xomino.com/select2-v4-needs-amd-fixing-in-domino-r9-xpages/
• Edit the js file before importing into the NSF
typeof define=="function"&&define.amd?define:function(_,f){f()});
typeof define=="function"&&define.amd&&false?define:function(_,f){f()});
94. The Grid
• Hold on I’m thinking….
• Yea, no, I can’t think of any.
Disclaimer: This is MY experience with jQuery and jQuery grids
in general.
Your milage may vary
• In the early days jQuery was the goto library because it was the
most “moder” (it had rounded corners)
• Of course check out xomino.com for all things jQuery and
XPages
95. The Brad
• DataTables - Very popular, lots of features, good docs, Bootstrap
• SlickGrid - Fast and pretty simple, not supported recently
• Flexigrid – simple, basic grid features
• jsGrid – nice looking, editing, inflexible search
• jqGrid – Bootstrap UI, feature-rich, simple
• jqxGrid – feature-rich, decent-looking
• jQuery Bootgrid or Ingrid – add basic grid features to a table
96. The Ugly
• There is no single source for jQuery beyond the core
• Most anything you want to do beyond basics requires a plug in
• You don’t always know where those plug ins
Came From
Will be supported
Will even be maintained
• There are a LOT of grid plug-ins to choose from. No real clear
picture of best one to implement for XPages.
98. Acknowledgements and Disclaimers
Availability. References in this presentation to IBM products, programs, or services do not imply that they will be available in all countries in which IBM
operates.
The workshops, sessions and materials have been prepared by IBM or the session speakers and reflect their own views. They are provided for informational
purposes only, and are neither intended to, nor shall have the effect of being, legal or other guidance or advice to any participant. While efforts were made to
verify the completeness and accuracy of the information contained in this presentation, it is provided AS-IS without warranty of any kind, express or implied. IBM
shall not be responsible for any damages arising out of the use of, or otherwise related to, this presentation or any other materials. Nothing contained in this
presentation is intended to, nor shall have the effect of, creating any warranties or representations from IBM or its suppliers or licensors, or altering the terms
and conditions of the applicable license agreement governing the use of IBM software.
All customer examples described are presented as illustrations of how those customers have used IBM products and the results they may have achieved.
Actual environmental costs and performance characteristics may vary by customer. Nothing contained in these materials is intended to, nor shall have the effect
of, stating or implying that any activities undertaken by you will result in any specific sales, revenue growth or other results.