This document provides an agenda and slides for a presentation on tips and tricks for developing XPages applications. The presentation is given by Matt White and Tim Clark and covers various configuration, client-side, server-side, and debugging techniques. Some of the topics discussed include designer tweaks, source control, mobile development best practices, managed beans, custom validators, debugging with the log file viewer and debugger tools.
REST services and IBM Domino/XWork - DanNotes 19-20. november 2014John Dalsgaard
Loose coupling of systems is key to future development! Why? Because it will allow us to change the "components" as we go along instead of creating monster big systems that are tied together using all sorts of different technologies. Webservices have been a way to obtain this over the last decade. More recently a special variant has become very popular, namely the JSON based REST service.
Imagine you could extend your data out to the world outside your Domino environment? - in an easy way....! And imagine those data could easily be incorporated into other systems via standardized interfaces... Could that extend the value of your current systems further? Could this be a way to use new technologies to modernize your users' experience of working with your systems?
Come and take away knowledge about how to open your Domino/XWork based systems up to the world outside using JSON based REST services. They are going to be key to future development in Domino/XWork - whether you want to use data in browser solutions (e.g. based on angular.js or ExtJS) or native mobile apps (built in whatever technology is best).
Harness the power of XPages in Lotus Dominodominion
One of the latest additions to the Domino Web developers\' toolkit of technologies,
XPages, is also arguably its most powerful and revolutionary to date. XPages allows
for functionality and capabilities previously thought impossible to achieve in Domino
application development.
REST services and IBM Domino/XWork - DanNotes 19-20. november 2014John Dalsgaard
Loose coupling of systems is key to future development! Why? Because it will allow us to change the "components" as we go along instead of creating monster big systems that are tied together using all sorts of different technologies. Webservices have been a way to obtain this over the last decade. More recently a special variant has become very popular, namely the JSON based REST service.
Imagine you could extend your data out to the world outside your Domino environment? - in an easy way....! And imagine those data could easily be incorporated into other systems via standardized interfaces... Could that extend the value of your current systems further? Could this be a way to use new technologies to modernize your users' experience of working with your systems?
Come and take away knowledge about how to open your Domino/XWork based systems up to the world outside using JSON based REST services. They are going to be key to future development in Domino/XWork - whether you want to use data in browser solutions (e.g. based on angular.js or ExtJS) or native mobile apps (built in whatever technology is best).
Harness the power of XPages in Lotus Dominodominion
One of the latest additions to the Domino Web developers\' toolkit of technologies,
XPages, is also arguably its most powerful and revolutionary to date. XPages allows
for functionality and capabilities previously thought impossible to achieve in Domino
application development.
A presentation to Refresh DC about the emerging HTML 5 and CSS 3 standards, namely about aspects that are beginning to become applicable to web design and development. Given by Jason Garber and M. Jackson Wilkinson.
BP204 - Take a REST and put your data to work with APIs!Craig Schumann
Today, the web is buzzing with the talk about web APIs. It seems that everyone - Facebook, Twitter, Netflix - has some sort of API you can use to integrate with their services. APIs are fundamental to how services on the web work today and data is the new currency. Knowing how to put them to work or how to roll your own can be a huge addition to your development toolbox. This session is all about web-based APIs (like REST). If you have only the vaguest idea about what an API is, or have ever wondered what REST was all about -- then this session is for you! We'll cover examples of using common public APIs and how you can put them to work in your own apps, and how to go about creating your own APIs, or use the REST services in IBM Domino.
SHOW102 XPages: Still No Experience Necessary IBM Connect 2014Kathy Brown
IBM Connect 2014
XPages: Still No Experience Necessary
Step by Step see how to create an XPages application. Create a help desk ticket app, including CRUD (Create, Read, Update, Delete)
Sascha Corti
With Internet Explorer 9, Microsoft has entered the league of HTML 5 browsers and with its active participation in the W3C working groups, the company proves its engagements towards the new and emerging standards. Developers however are often left wondering where the boundaries are drawn between HTML5 web site, plug-in based rich internet application and smart client or “app”.
This session intends to answer this question and uses many examples to show you some of the most important enhancements introduced by HTML5, CSS3, SVG, DOM, WOFF and ECMA script. You will learn now the standards are still evolving and how Microsoft is contributing.
http://soft-shake.ch/2011/conference/sessions/microsoft/2011/09/06/introduction-to-html5.html
BP101: A Modernized Workflow w/ Domino/XPagesedm00se
Extending on some of the themes of front-end heavy application development, this session covered the higher order themes of development workflow automation, revolving around the concepts of modern web app development from a full stack perspective.
In this slideshow for WPCampus, you will learn methods for Troubleshooting WordPress website problems. This will help you narrow down the cause of most WordPress problems. You can also see the video presentation here: https://youtu.be/QiryJaNrNoo
Lessons learned from the worlds largest XPage projectMark Roden
Working on the world's largest XPages implementation has its challenges. Modernizing an IBM Notes client application used in over 105 countries by over 100,000 users teaches you a lot! In this session, we'll share some of the challenges and our appropach to overcoming them. We'll demonstrate a new XPinC performance feature in the upcoming Social Edition being added as a result of our work with IBM. We'll also demonstrate best practices in user interaction, share lessons learned on team development using a single .nsf file -- and much more. Come and find out more about how you can save time, money and avoid end-user frustration as we share our experiences - and open the covers of the largest XPages project in the world. Sample DB provided!
BP204 It's Not Infernal: Dante's Nine Circles of XPages HeavenMichael McGarel
Do not abandon all hope, ye who enter here! Your very own Dante and Virgil will take you through a divine comedy of nine circles that show that XPages is more paradise than perdition. We'll show how XPages and related concepts like OSGi plugins make XPages a modern and vibrant development technology for web, mobile and rich client. On the way we'll guide you past some pitfalls to avoid becoming one of the lost souls. When we re-emerge, you'll see the sky's the limit with star-studded opportunities. (Presented at IBM Connect 2014)
HTML5 Tutorial For Beginners - Learning HTML 5 in simple and easy steps with examples covering 2D Canvas, Audio, Video, New Semantic Elements, Geolocation, Persistent Local Storage, Web Storage, Forms Elements,Application Cache,Inline SVG,Document
Uno! Deux! Three! Making Localization of XPages as Easy as 1-2-3Kathy Brown
From IBM Connect 2014, Making Localization of XPages as easy as 1-2-3. We show what comes "out of the box" and also how to localize what isn't "out of the box".
Buckle up, join Christoph and Nico and get ready to learn 50 tips and tricks you can implement right away to improve your IBM Connections environment. Your users will thank you as they too benefit from this best practice list gathered from real-world projects while deploying and administering IBM Connections On-premises. Walk away with knowledge covering anything from Orient Me, Cognos integration, Docs, CCM and Forms Experience Builder to the back end like IBM Cloud private, DB2, TDI and SSO.
A presentation to Refresh DC about the emerging HTML 5 and CSS 3 standards, namely about aspects that are beginning to become applicable to web design and development. Given by Jason Garber and M. Jackson Wilkinson.
BP204 - Take a REST and put your data to work with APIs!Craig Schumann
Today, the web is buzzing with the talk about web APIs. It seems that everyone - Facebook, Twitter, Netflix - has some sort of API you can use to integrate with their services. APIs are fundamental to how services on the web work today and data is the new currency. Knowing how to put them to work or how to roll your own can be a huge addition to your development toolbox. This session is all about web-based APIs (like REST). If you have only the vaguest idea about what an API is, or have ever wondered what REST was all about -- then this session is for you! We'll cover examples of using common public APIs and how you can put them to work in your own apps, and how to go about creating your own APIs, or use the REST services in IBM Domino.
SHOW102 XPages: Still No Experience Necessary IBM Connect 2014Kathy Brown
IBM Connect 2014
XPages: Still No Experience Necessary
Step by Step see how to create an XPages application. Create a help desk ticket app, including CRUD (Create, Read, Update, Delete)
Sascha Corti
With Internet Explorer 9, Microsoft has entered the league of HTML 5 browsers and with its active participation in the W3C working groups, the company proves its engagements towards the new and emerging standards. Developers however are often left wondering where the boundaries are drawn between HTML5 web site, plug-in based rich internet application and smart client or “app”.
This session intends to answer this question and uses many examples to show you some of the most important enhancements introduced by HTML5, CSS3, SVG, DOM, WOFF and ECMA script. You will learn now the standards are still evolving and how Microsoft is contributing.
http://soft-shake.ch/2011/conference/sessions/microsoft/2011/09/06/introduction-to-html5.html
BP101: A Modernized Workflow w/ Domino/XPagesedm00se
Extending on some of the themes of front-end heavy application development, this session covered the higher order themes of development workflow automation, revolving around the concepts of modern web app development from a full stack perspective.
In this slideshow for WPCampus, you will learn methods for Troubleshooting WordPress website problems. This will help you narrow down the cause of most WordPress problems. You can also see the video presentation here: https://youtu.be/QiryJaNrNoo
Lessons learned from the worlds largest XPage projectMark Roden
Working on the world's largest XPages implementation has its challenges. Modernizing an IBM Notes client application used in over 105 countries by over 100,000 users teaches you a lot! In this session, we'll share some of the challenges and our appropach to overcoming them. We'll demonstrate a new XPinC performance feature in the upcoming Social Edition being added as a result of our work with IBM. We'll also demonstrate best practices in user interaction, share lessons learned on team development using a single .nsf file -- and much more. Come and find out more about how you can save time, money and avoid end-user frustration as we share our experiences - and open the covers of the largest XPages project in the world. Sample DB provided!
BP204 It's Not Infernal: Dante's Nine Circles of XPages HeavenMichael McGarel
Do not abandon all hope, ye who enter here! Your very own Dante and Virgil will take you through a divine comedy of nine circles that show that XPages is more paradise than perdition. We'll show how XPages and related concepts like OSGi plugins make XPages a modern and vibrant development technology for web, mobile and rich client. On the way we'll guide you past some pitfalls to avoid becoming one of the lost souls. When we re-emerge, you'll see the sky's the limit with star-studded opportunities. (Presented at IBM Connect 2014)
HTML5 Tutorial For Beginners - Learning HTML 5 in simple and easy steps with examples covering 2D Canvas, Audio, Video, New Semantic Elements, Geolocation, Persistent Local Storage, Web Storage, Forms Elements,Application Cache,Inline SVG,Document
Uno! Deux! Three! Making Localization of XPages as Easy as 1-2-3Kathy Brown
From IBM Connect 2014, Making Localization of XPages as easy as 1-2-3. We show what comes "out of the box" and also how to localize what isn't "out of the box".
Buckle up, join Christoph and Nico and get ready to learn 50 tips and tricks you can implement right away to improve your IBM Connections environment. Your users will thank you as they too benefit from this best practice list gathered from real-world projects while deploying and administering IBM Connections On-premises. Walk away with knowledge covering anything from Orient Me, Cognos integration, Docs, CCM and Forms Experience Builder to the back end like IBM Cloud private, DB2, TDI and SSO.
Designing well known websites with ADF Rich Facesmaikorocha
In this presentation we show some of the basics of ADF Rich Faces in terms of page layout, components, and skinning and how can you rebuild two well-known website layouts with those components.
XPages Blast - Ideas, Tips and More.
This session will take you on a roller-coaster ride through the "best of the best" ideas and time-saving techniques for creating world-class XPages applications.
Thirty all new top tips - this is going to be fast-paced and packed with loads of information you will refer to time and time again! Everything from introductory tips on getting started with XPages, to complex tips - such as making use of Java. Also, the support app showing all of the tips and tricks.
Tek 2013 - Building Web Apps from a New Angle with AngularJSPablo Godel
AngularJS is a new JavaScript framework, backed by Google, for building powerful, complex and rich client-side web applications. We will go over the features and basics of building a web application with AngularJS and we will demonstrate how to communicate with a REST server built with PHP.
Lone StarPHP 2013 - Building Web Apps from a New AnglePablo Godel
AngularJS is a new JavaScript framework, backed by Google, for building powerful, complex and rich client-side web applications. We will go over the features and basics of building a web application with AngularJS and we will demonstrate how to communitate with a REST server built with PHP.
AD113 Speed Up Your Applications w/ Nginx and PageSpeededm00se
My slide deck from my session, AD113: Speed Up Your Applications with Nginx + PageSpeed, at MWLUG 2015 in Atlanta, GA at the Ritz-Carlton.
For more, see:
- https://edm00se.io/self-promotion/mwlug-ad113-success
- https://github.com/edm00se/AD113-Speed-Up-Your-Apps-with-Nginx-and-PageSpeed
We'll go through the possible ways to bring technology agnostic microservice architecture to the frontend, review pros/cons of each of them. We also will check the "ultimate solution" that handles microservices with SSR in SPA manner.
This talk will be interesting for ones who have multiple teams working on the same frontend application.
From pets to cattle - powered by CoreOS, docker, Mesos & nginxQAware GmbH
Cloud Native Night August 2016, Munich: Talk by Thomas Schneider (Lead Engineer at zooplus)
Join our Meetup: www.meetup.com/cloud-native-muc
Abstract: This talk is on experiences with the cloud native stack in production using CoreOS, docker, Mesos & nginx.
implement lighthouse-ci with your web development workflowWordPress
This presentation is about implementing the performance as first approach in web development and a bit of real case study. Then implement the Lighthouse-CI in the development workflow to keep the site performance high.
Engage 2022: The Superpower of Integrating External APIs for Notes and Domino...Serdar Basegmez
Session De13 from Engage User Group Conference 2022 with Thilo Volprich
"In the jungle, no application walks alone. Sooner or later, applications will need to interact with other internal and external applications.
Luckily, Notes/Domino is a powerful platform to access data from other systems and provides wide range of possibilities to interact with different APIs.
This session focuses on how to architect various integration scenarios to implement secure and robust solutions for your Notes/Domino platform.
Whether you use LotusScript or Java, come to this session to see the best practices with real-world use cases."
(25/May/2022)
JSFest 2019: Technology agnostic microservices at SPA frontendVlad Fedosov
We'll go through the possible ways to bring technology agnostic microservice architecture to the frontend, review pros/cons of each of them. We also will check the "ultimate solution" that handles microservices with SSR in SPA manner.
This talk will be interesting for ones who have multiple teams working on the same frontend application.
Want to build an XPages application, but not sure how? Kathy and Dave will show you how to build a sample help desk application from start to finish. Step by Step they will show you how to create, read, update, and delete tickets. Along the way you'll be introduced the most common XPages concepts like SSJS, Custom Controls, View and Repeat Controls, Extension Library, CSS frameworks, and much more. Go home with a working application that you can use today!
In recent years, a number of features have appeared on the web platform that allow us to provide better user experiences, largely through doing things more efficiently rather than inventing completely new patterns. In this talk, Mozilla’s Chris Mills explores a few of these features — such as Streams, Service workers and PWAs — and why they are worth knowing about as we move towards the future.
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.
A tale of scale & speed: How the US Navy is enabling software delivery from l...sonjaschweigert1
Rapid and secure feature delivery is a goal across every application team and every branch of the DoD. The Navy’s DevSecOps platform, Party Barge, has achieved:
- Reduction in onboarding time from 5 weeks to 1 day
- Improved developer experience and productivity through actionable findings and reduction of false positives
- Maintenance of superior security standards and inherent policy enforcement with Authorization to Operate (ATO)
Development teams can ship efficiently and ensure applications are cyber ready for Navy Authorizing Officials (AOs). In this webinar, Sigma Defense and Anchore will give attendees a look behind the scenes and demo secure pipeline automation and security artifacts that speed up application ATO and time to production.
We will cover:
- How to remove silos in DevSecOps
- How to build efficient development pipeline roles and component templates
- How to deliver security artifacts that matter for ATO’s (SBOMs, vulnerability reports, and policy evidence)
- How to streamline operations with automated policy checks on container images
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
Sudheer Mechineni, Head of Application Frameworks, Standard Chartered Bank
Discover how Standard Chartered Bank harnessed the power of Neo4j to transform complex data access challenges into a dynamic, scalable graph database solution. This keynote will cover their journey from initial adoption to deploying a fully automated, enterprise-grade causal cluster, highlighting key strategies for modelling organisational changes and ensuring robust disaster recovery. Learn how these innovations have not only enhanced Standard Chartered Bank’s data infrastructure but also positioned them as pioneers in the banking sector’s adoption of graph technology.
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.
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.
Dr. Sean Tan, Head of Data Science, Changi Airport Group
Discover how Changi Airport Group (CAG) leverages graph technologies and generative AI to revolutionize their search capabilities. This session delves into the unique search needs of CAG’s diverse passengers and customers, showcasing how graph data structures enhance the accuracy and relevance of AI-generated search results, mitigating the risk of “hallucinations” and improving the overall customer journey.
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.
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!SOFTTECHHUB
As the digital landscape continually evolves, operating systems play a critical role in shaping user experiences and productivity. The launch of Nitrux Linux 3.5.0 marks a significant milestone, offering a robust alternative to traditional systems such as Windows 11. This article delves into the essence of Nitrux Linux 3.5.0, exploring its unique features, advantages, and how it stands as a compelling choice for both casual users and tech enthusiasts.
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
UiPath Test Automation using UiPath Test Suite series, part 5DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 5. In this session, we will cover CI/CD with devops.
Topics covered:
CI/CD with in UiPath
End-to-end overview of CI/CD pipeline with Azure devops
Speaker:
Lyndsey Byblow, Test Suite Sales Engineer @ UiPath, Inc.
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.
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024Neo4j
Neha Bajwa, Vice President of Product Marketing, Neo4j
Join us as we explore breakthrough innovations enabled by interconnected data and AI. Discover firsthand how organizations use relationships in data to uncover contextual insights and solve our most pressing challenges – from optimizing supply chains, detecting fraud, and improving customer experiences to accelerating drug discoveries.
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.
Removing Uninteresting Bytes in Software FuzzingAftab Hussain
Imagine a world where software fuzzing, the process of mutating bytes in test seeds to uncover hidden and erroneous program behaviors, becomes faster and more effective. A lot depends on the initial seeds, which can significantly dictate the trajectory of a fuzzing campaign, particularly in terms of how long it takes to uncover interesting behaviour in your code. We introduce DIAR, a technique designed to speedup fuzzing campaigns by pinpointing and eliminating those uninteresting bytes in the seeds. Picture this: instead of wasting valuable resources on meaningless mutations in large, bloated seeds, DIAR removes the unnecessary bytes, streamlining the entire process.
In this work, we equipped AFL, a popular fuzzer, with DIAR and examined two critical Linux libraries -- Libxml's xmllint, a tool for parsing xml documents, and Binutil's readelf, an essential debugging and security analysis command-line tool used to display detailed information about ELF (Executable and Linkable Format). Our preliminary results show that AFL+DIAR does not only discover new paths more quickly but also achieves higher coverage overall. This work thus showcases how starting with lean and optimized seeds can lead to faster, more comprehensive fuzzing campaigns -- and DIAR helps you find such seeds.
- These are slides of the talk given at IEEE International Conference on Software Testing Verification and Validation Workshop, ICSTW 2022.
2. Matt White
§Consultant with London Developer Co-op
§Lead Developer with Elguji Software
§Owner of XPages101.net
§In the last year has;
–Got married
–Become a father
–Bought a new house
–Oh... and developed some XPages apps!
2
Tuesday, 15 January 13
3. Tim Clark
§Owner of TC Soft Consulting
§IBM Champion
§Prince2 Practitioner (Project Management)
§ITIL certified
§Manager of;
–People
–Projects
–My family ;o)
3
Tuesday, 15 January 13
4. Products we’re using
§IBM Lotus® Domino® Server 8.5.3
–If we use other versions for a tip we’ll highlight it
§IBM Lotus® Notes® 8.5.3
§IBM Notes® 9.0
§IBM Lotus® Domino Designer® 8.5.3
§IBM Domino Designer® 9.0
§We will use this logo to highlight any slide that has IBM Domino Designer® 9.0 items
4
Tuesday, 15 January 13
6. Designer Tweaks
§Working Sets
–Great for grouping together similar applications
§Perspectives
–Switch between XPages, Domino Designer and Debug
§Turn on Line Numbers in code editor
–Right click in the gutter and select “Show Line Numbers”
6
Tuesday, 15 January 13
8. Disable Build Automatically
§It is enabled by default
§When you save a design element the application is recompiled
§This is bad if
–you’re working in a team
–you’re working on remote servers
§Turn it off and get used to using Ctrl-B
8
Tuesday, 15 January 13
9. Disable Build Automatically
§Bonus Tip: if you close other applications the build process is quicker
–Can only be done in Package Explorer in 8.5.3, in 9.0 it can be done from
Applications pane
9
Tuesday, 15 January 13
10. Source Control
§Acts as a great backup tool for you
§Even if you don’t have a team Repository, set up a local one
§We use Github, allows for better team development
§Set up Source Control for the application and choose a disk location
§Then set up the Github project
§Link the two by creating a new Git project in the same disk location
§Video of how to set it all up at
http://bit.ly/xpb_github
§We use a client to control the Committing, rollbacks etc, but command line works equally
well
§https://github.com/tcsoft/xpb2013
10
Tuesday, 15 January 13
11. Designer Memory Settings
§8.5.3 Designer client can be a little crashy, but we can fix that!
§Open the file at:
<Notes program dir>/framework/rcp/deploy/jvm.properties
§Default settings in 8.5.3 are:
vmarg.Xmx=-Xmx256m
vmarg.Xms=-Xms48m
vmarg.Xmca=-Xmca8k
§Also still like this is Domino Designer 9.0 (beta)
11
Tuesday, 15 January 13
12. Designer Memory Settings
§New settings should be:
vmarg.Xmx=-Xmx1024m
vmarg.Xms=-Xms512m
vmarg.Xmca=-Xmca512k
§Took my machine from crashing nearly every day at 3pm to almost never crashing
§Technote:
http://www-01.ibm.com/support/docview.wss?uid=swg21617708
12
Tuesday, 15 January 13
15. Think Mobile
§Mobile Controls in the Extension Library
§But even if not going that far then it’s always worth setting meta tags
and field types
§Meta tags configure the page for optimal viewing in iOS
§Set them by adding a metadata resource to your XPage:
15
Tuesday, 15 January 13
16. Think Mobile
§By default consider these...
§viewport: width = device-width, initial-scale = 2.3, user-scalable = yes
–scales the page to fit on the page
§apple-mobile-web-app-capable: yes
–allows you to add to the iOS workspace and run without the Safari controls
§apple-mobile-web-app-status-bar-style: black
–changes the header bar color
16
Tuesday, 15 January 13
17. Think Mobile
§There is no overhead at all to setting the “type” property of fields so that when you are
using a mobile device the user gets the correct keyboard
§In All Properties for a field set type, most important being:
–date (displays a native picker, but beware date formats)
–email
–number
–url
17
Tuesday, 15 January 13
18. Use jQuery
§If you want to use the most popular JavaScript framework on the Internet add jQuery to
your application
§Extra overhead but on a fast network not a huge problem
§Check out http://xomino.com for great tips
–Also see Marky’s session BP103 - jQuery: the world’s most popular JavaScript library comes
to XPages (Thursday 8:30am Swan - SW4)
§Gives access to huge number of resources in your applications
§Code is often easier to write (ymmv!)
18
Tuesday, 15 January 13
19. Use the extension library application layout
§Check out the companion application for this session.
§The extension library application layout has lots of options and can be made to suit your
application.
19
Tuesday, 15 January 13
20. Use Bootstrap
§OneUI is one way to go for the look and feel of your app
§Bootstrap is an alternative
–Open source, released by Twitter
–Easy to use
–Integrates with jQuery
–Has useful built in widgets
20
Tuesday, 15 January 13
24. Using Themes
§For simple things like including CSS files on all XPages
§For more advanced things as well...
§Add a CSS class to all controls of a particular type:
24
Tuesday, 15 January 13
25. Using Themes
§Using the Theme ID we can create our own sub types of field:
§Or we can add custom classes to the <body>
25
Tuesday, 15 January 13
26. Using Attributes
§Pretty much every control has a property called “attrs”
§You can add as many attributes as you like to a control
§Often used in conjunction with the tagName property
–To make a panel into an anchor for example
26
Tuesday, 15 January 13
27. Using Attributes
§Ones we use a lot are:
–href
–onclick (and other events)
–data-toggle (and other jQuery tags)
§Will result in this being generated:
<a id="id1:_id2:mylink" onclick="doSomething()">
My Link
</a>
27
Tuesday, 15 January 13
28. Document Locking
§Scoped Variables are great for in memory tasks
§Such as knowing who has documents in edit mode
§So when a page is loaded we can call some code to decide whether to allow the user to
edit it
§We can use applicationScope variables to store a Java Hashmap of who has locked
individual documents
28
Tuesday, 15 January 13
29. Document Locking
function processDocumentLocking(){
if (context.getUrlParameter("documentId") != "" &&
context.getUrlParameter("action").toLowerCase() == "editdocument"){
if (!applicationScope.containsKey("documentlocks")){
applicationScope.documentlocks = new java.util.Hashtable();
}
var hash:java.util.Hashtable = applicationScope.documentlocks;
if (hash.containsKey(context.getUrlParameter("documentId"))){
var lock = hash.get(context.getUrlParameter("documentId"));
if (lock.person != @UserName()){
viewScope.locked = lock;
}
}else{
var lock = new DocumentLock();
lock.unid = context.getUrlParameter("documentId");
lock.person = @UserName();
lock.time = new java.util.Date();
hash.put(lock.unid, lock);
applicationScope.documentlocks = hash;
}
...
29
Tuesday, 15 January 13
30. Document Locking
...
}else if (context.getUrlParameter("documentId") != "" &&
context.getUrlParameter("action").toLowerCase() == "opendocument"){
if (!applicationScope.containsKey("documentlocks")){
applicationScope.documentlocks = new java.util.Hashtable();
}
var hash:java.util.Hashtable = applicationScope.documentlocks;
if (hash.containsKey(context.getUrlParameter("documentId"))){
var lock = hash.get(context.getUrlParameter("documentId"));
if (lock.person == @UserName()){
unlockDocument( context.getUrlParameter("documentId") );
}else{
viewScope.locked = lock;
}
}
}
}
30
Tuesday, 15 January 13
31. Document Locking
function unlockDocument(unid){
if (applicationScope.containsKey("documentlocks")){
var hash:java.util.Hashtable = applicationScope.documentlocks;
if (hash.containsKey(unid)){
var lock = hash.get(unid);
if (lock.person == @UserName()){
hash.remove(unid);
applicationScope.documentlocks = hash;
}
}
}
}
var DocumentLock = function(){
this.unid;
this.person;
this.time;
}
31
Tuesday, 15 January 13
33. Expression Language
§You’re probably already using it even if you don’t realize it with Simple
Data Binding
§It’s just a simple shorthand to access properties quickly
§You just need to use the Advanced - Expression Language binding
33
Tuesday, 15 January 13
34. Expression Language
§If you want to get clever you can mix and match EL with SSJS
§In the Advanced - Custom binding
34
Tuesday, 15 January 13
35. Managed Beans
§Not as scary as you might think
§Made up of two things
–Java Class that does something
–XML Config to set up the “managed” bit
§The idea is that the server looks after creation of the objects for you
§So say we want to create an HTML Email...
35
Tuesday, 15 January 13
36. Managed Beans
§Tony McGuckin contributed the XSnippet: http://bit.ly/xpb_managedbean
§It does a single thing, in this case sends an email:
36
Tuesday, 15 January 13
37. Managed Beans
§Then we set up the XML Configuration
§In the faces-config.xml file found in Package Explorer
–WebContentWEB-INFfaces-config.xml
§We need to define the name of the bean, the Java class being used and
the Scope it will operate with
37
Tuesday, 15 January 13
38. Managed Beans
§Now we can use the managed bean in our SSJS
§There’s a whole session about Managed Beans:
–JMP402 - Managed Beans and XPages: Your time is now
38
Tuesday, 15 January 13
39. FacesMessage
§Often we want to be able to send messages to the browser window
§Just add add an “Error Messages” control to your XPage and use this
code:
§In this example the code runs when a button is clicked and shows the
current time
39
Tuesday, 15 January 13
40. Custom Validators
§For complex or common validation we can centralize the logic into Java
classes using Custom Validators
§First we create the Java class:
40
Tuesday, 15 January 13
41. Custom Validators
§Next we set up the validator configuration in the faces-config.xml file
–WebContentWEB-INFfaces-config.xml
41
Tuesday, 15 January 13
43. Apache Commons
§Taking the Custom Validator, what if we want “real” validation
§Lots of common tasks have already been covered by Apache Commons:
http://commons.apache.org/validator/
§Import the commons-validator.jar file into WebContentWEB-INFLib
§Then right click and “Add to Build Path”
43
Tuesday, 15 January 13
44. Apache Commons
§Now we can edit our Java class to use the EmailValidator:
44
Tuesday, 15 January 13
46. Log File Viewer
§A project on OpenNTF by Jakob Majkilde
http://bit.ly/xpb_logfileviewer
§Makes watching log files (especially on remote servers) much easier
46
Tuesday, 15 January 13
48. Debug Toolbar
§A project on OpenNTF by Mark Leusink
http://bit.ly/xpb_debugtoolbar
§Very useful for following debug messages, timing code and more
48
Tuesday, 15 January 13
49. Java Debugging
§Built into Domino Designer since 8.5.3
§Easy to set up
§Add lines to notes.ini on the dev server:
JavaEnableDebug=1
JavaDebugOptions=transport=dt_socket,server=y,suspend=n,address=8000
§Restart the server
49
Tuesday, 15 January 13
50. Java Debugging
§In Domino Designer switch to the Debug Perspective
§Create a new Remote Java Application Debug Configuration
50
Tuesday, 15 January 13
51. Java Debugging
§Now we can add a breakpoint to our code and load the XPage in a
browser and then step through the code
51
Tuesday, 15 January 13
52. SSJS Debugging
§Server Side JavaScript debugging is almost exactly the same in Domino 9.0
§The notes.ini lines to add are:
JavaEnableDebug=1
JavascriptEnableDebug=1
JavaDebugOptions=transport=dt_socket,server=y,suspend=n,address=8000
§There’s a whole session on this:
AD202 Debug Server Side Javascript, Java, and XPages Apps Using the SSJS
Debugger
M Blout & D O'Connor
(Wednesday 4:15pm)
52
Tuesday, 15 January 13
54. SSJS Debugging
§And then we can set a breakpoint in the source XML of our XPage:
54
Tuesday, 15 January 13
55. Pasting source code from extension library
§‘The prefix "xe" for element "xe:navigator" is not bound.’
§This happens when you paste in some source code from one custom control to another
for a control that is from the extension library.
§The View tag is where you can solve this issue.
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
<xp:view xmlns:xp="http://www.ibm.com/xsp/core"
xmlns:xe="http://www.ibm.com/xsp/coreex">
§Does not happen if you drag and drop from the extension library palette.
55
Tuesday, 15 January 13
56. Other Useful Sessions
§BP211 - Lessons learned from the world’s largest XPages project
§AD204 - How to develop great applications using XPages Design Patterns
§AD208 - IBM Lotus Domino XPages Performance in a nutshell
§BP201 - Deploying and Managing IBM Lotus Domino XPages Applications
§BP202 - XPages Development: Modernize yourself!
§BP203 - Limitless Languages in the IBM Social Stack
§SHOW112 - Building your first mobile application using XPages
56
Tuesday, 15 January 13