This document discusses various Java tips and techniques for XPages development, including:
1) Putting Notes documents in memory by wrapping them in a DominoDocument class to avoid memory issues.
2) Using built-in JSON classes to build JSON instead of string concatenation.
3) Creating managed beans to minimize server-side JavaScript and make code more readable.
4) Developing utility classes and extending classes for reusable code.
Robot Framework for beginners and what is new at 2019Laura Ojala
Slides for 1,5 hours workshop about Robot Framework. Presentation includes: (1) introduction to web site testing using Selenium Webdriver for complete beginners, and (2) what impressed me the most in Robocon 2019 conference.
Robot Framework for beginners and what is new at 2019Laura Ojala
Slides for 1,5 hours workshop about Robot Framework. Presentation includes: (1) introduction to web site testing using Selenium Webdriver for complete beginners, and (2) what impressed me the most in Robocon 2019 conference.
Presentation about our experiences in developing an app in Swift. Which design and architecture decisions we took, what was the impact of those decisions and how the language taught us to think and develop in different ways.
A little presentation about how we squeezed Symfony to implement some sort of SOA
better see here
https://docs.google.com/presentation/d/1TnDjbERj8F6UgqbZ7fJQsAL6yfg5G56G1iTqSzeTUE8/pub?start=false&loop=false&delayms=3000
Starting a new JavaScript project can be complicated. There are many questions that need to be answered before you write a single line of code. What framework do you use? How will you compile the app? Should you use TypeScript or not? How will users authenticate? These are just a few of the time-consuming issues that need to be addressed with each new project you undertake. In this session, Red Pill Now co-founder, Keith Strickland will explore how Red Pill Now has decreased project startup time from about a week, to just a few minutes, by creating reusable project elements. You will learn the tools, processes and elements needed to accomplish this task, leaving you with new ideas on how to shorten your startup time, and reduce the amount of boilerplate required to implement your own solutions.
presented at Engage 2018
Tests immutable when refactoring - SegFault Unconference Cracow 2019Grzegorz Miejski
Some time ago, when refactoring code or adding business logic, my tests failed -> leaving me unsure if I did break something or not.
How to write tests, where you can completely change the implementation and verify that it still works without breaking any test? Feels like a utopia? Come and see how to do this with "real" project example!
Github project:
https://github.com/gmiejski/dvd-rental-tdd-example
CrossWorlds: Unleash the Power of Domino for Connections Development LetsConnect
Until now, the only way to surface your Customers’ Domino data in IBM Connections has been via XPages. But over the last year IBM Domino Developers, the Domino landscape and the Java web development landscape have undergone a significant change. See how to use the popular Vaadin framework to create a standard web application on IBM Websphere Liberty using IBM Domino as either a NoSQL or Graph database.
Top 10 PowerShell Features in Server 2012Thomas Lee
This is from a webcast I did in September 2012 for Idera.
It looks at 10 of the cooler PowerShell V3 features of Server 2012. It is a quick look at some of the cooler features and how you can leverage PowerShell v3.
This presentation demonstrates general guidelines how to create good test cases using Robot Framework. Both good practices and anti-patterns are presented.
The presentation is hosted on GitHub where you can find the original in ODP format: https://github.com/robotframework/DosDontsSlides
Plone 5.2 migration at University Ghent, BelgiumAndreas Jung
This talk summarizes our #Plone migration approach of the Plone installation at ugent.be. The migration process consists of the export of the original site to JSON using collective.jsonify, import of the data to ArangoDB and then back into a fresh Plone site through plone.restapi
Hands on iOS developments with JenkinseXo Platform
This workshop from Arnaud Heritier explains how to setup an environment to build/test/deploy iOS applications using Jenkins CI server and an AppAloosa private store
Presentation about our experiences in developing an app in Swift. Which design and architecture decisions we took, what was the impact of those decisions and how the language taught us to think and develop in different ways.
A little presentation about how we squeezed Symfony to implement some sort of SOA
better see here
https://docs.google.com/presentation/d/1TnDjbERj8F6UgqbZ7fJQsAL6yfg5G56G1iTqSzeTUE8/pub?start=false&loop=false&delayms=3000
Starting a new JavaScript project can be complicated. There are many questions that need to be answered before you write a single line of code. What framework do you use? How will you compile the app? Should you use TypeScript or not? How will users authenticate? These are just a few of the time-consuming issues that need to be addressed with each new project you undertake. In this session, Red Pill Now co-founder, Keith Strickland will explore how Red Pill Now has decreased project startup time from about a week, to just a few minutes, by creating reusable project elements. You will learn the tools, processes and elements needed to accomplish this task, leaving you with new ideas on how to shorten your startup time, and reduce the amount of boilerplate required to implement your own solutions.
presented at Engage 2018
Tests immutable when refactoring - SegFault Unconference Cracow 2019Grzegorz Miejski
Some time ago, when refactoring code or adding business logic, my tests failed -> leaving me unsure if I did break something or not.
How to write tests, where you can completely change the implementation and verify that it still works without breaking any test? Feels like a utopia? Come and see how to do this with "real" project example!
Github project:
https://github.com/gmiejski/dvd-rental-tdd-example
CrossWorlds: Unleash the Power of Domino for Connections Development LetsConnect
Until now, the only way to surface your Customers’ Domino data in IBM Connections has been via XPages. But over the last year IBM Domino Developers, the Domino landscape and the Java web development landscape have undergone a significant change. See how to use the popular Vaadin framework to create a standard web application on IBM Websphere Liberty using IBM Domino as either a NoSQL or Graph database.
Top 10 PowerShell Features in Server 2012Thomas Lee
This is from a webcast I did in September 2012 for Idera.
It looks at 10 of the cooler PowerShell V3 features of Server 2012. It is a quick look at some of the cooler features and how you can leverage PowerShell v3.
This presentation demonstrates general guidelines how to create good test cases using Robot Framework. Both good practices and anti-patterns are presented.
The presentation is hosted on GitHub where you can find the original in ODP format: https://github.com/robotframework/DosDontsSlides
Plone 5.2 migration at University Ghent, BelgiumAndreas Jung
This talk summarizes our #Plone migration approach of the Plone installation at ugent.be. The migration process consists of the export of the original site to JSON using collective.jsonify, import of the data to ArangoDB and then back into a fresh Plone site through plone.restapi
Hands on iOS developments with JenkinseXo Platform
This workshop from Arnaud Heritier explains how to setup an environment to build/test/deploy iOS applications using Jenkins CI server and an AppAloosa private store
An overview of how to structure your Lumen APIs to make them awesome. Topics covered: requests, responses, logging, documentation and testing.
Slides assume some background in Laravel.
Writing code for web applications becomes easier when developers can access
reliable libraries, templates and tools. Web frameworks in Python allow developers
to build reliable and scalable applications quickly and with less code. Code can be
reused for common recurring operations, and can be structured in a way that it is
easily maintained.
Django and Flask are popular Python frameworks that enable rapid development
and ease of app design. Easy to learn and very simple to use, they are built with
easily extensible design philosophy
JUnit 5 - New Opportunities for Testing on the JVMSam Brannen
Take a Deep Dive into JUnit 5 with core committer Sam Brannen!
Over the last decade a lot has happened in the world of Java and testing, but JUnit 4 hasn't kept up. Now JUnit 5 is here to help shape the future of testing on the JVM with a focus on Java 8 language features, extensibility, and a modern programming API for testing in Java. Moreover, JUnit isn't just a Java testing framework anymore. Third parties are already developing test engines for Scala, Groovy, Kotlin, etc. that run on the new JUnit Platform.
This session starts off with an overview of the inspiration for & architecture of JUnit 5, from launchers to test engines. Sam will then take the audience on a live coding tour, highlighting support for tagging, custom display names, dependency injection, repeated tests, parameterized tests, conditional test execution, lambda expressions for assertions, assumptions, & dynamic tests, and implementing tests via interface default methods (a.k.a., testing traits).
Next, Sam will present the new extension model in JUnit Jupiter, discussing how to author and register extensions for conditional tests, parameter resolution (a.k.a., dependency injection), lifecycle callbacks, & more.
To round off the session, Sam will quickly showcase the new JUnit Jupiter support in Spring Framework 5.0.
A bit on JavaScript History
Learn how to program in the modern JavaScript i.e., ECMAScript 2015 (Version 6) / ECMAScript 6 / ES2015 / ES6 complied by BabelJS
Program with the best practices (Airbnb coding style) and style checking tools by ESLint
Similar to Use notes objects in memory and other useful java tips for xpages development (20)
At Engage 2019 I did a session about a not so objective view on frontend development, where I compared the big 3 frontend technologies: Angular, ReactJs and VueJS.
Now it's 2024: Let me explain my latest view on these frameworks.
Is Angular still my preferred frontend technology?
Are there new kids on the block?
Let's discuss the good, bad and the ugly of each frontend technology.
Engage 2020: Hello are you listening, There is stream for everythingFrank van der Linden
The world is changing in a event driven world
Event driven architecture is not a new technology. IBM MQ is already 25 years old.
The popularity is increasing, because it is a robust, decoupled way to exchange data.
Today there are new popular 'new kids on the block'. Kafka is one of them and gets lots of attention also in the enterprise.
The principle however are still the same, called Pub Sub principle.
HCL will add to the App Dev pack the possibility to consume and produce to a broker/stream.
There are frameworks who helps you to focus on the business logic.
In this session I will explain this principle and show you that is not that difficult to make use of it. Connect your existing code to a service bus or queue, producing and consuming.
Today almost every product has an API, to integrate in other products or to made the data available to the outside world. Most API’s are using traditional patterns and technology. With the rise of Angular, React and other modern frameworks there is a need for non blocking API’s. Meet Reactive streams, like Spring Webflux, to super charge your API.
In this session I will tell about and show you Reactive API’s and more
NCUG 2019: Spring forward: an introduction to Spring boot and Thymeleaf for (...Frank van der Linden
The world of (XPages) developer is moving fast. Customers rethinking platforms and solutions. Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can "just run". In combination with Thymeleaf can it be good alternative for your XPages applications.
In this session I give an introduction of Spring Boot and Thymeleaf and how to get started. I will show the differences and similarities between Spring Boot in combination with Thymeleaf and XPages.
I will explain the challenges I faced when moving an application.
Engage 2019: The good, the bad and the ugly: a not so objective view on front...Frank van der Linden
In the front end development world there are 3 dominant players, Angular, ReactJS and VueJs.
Every framework has a strong fan base. And of course lots of pros and cons The best way to learn more about the strengths and weaknesses of the frameworks, I have build the same application with all these frameworks. In this session I will explain my experience with each framework and try to highlight the good the bad and the ugly. Expect to see code
The demo application can be found on GitHub, https://github.com/flinden68/my-events-demo-application
Icon UK 2018 - Spring forward: an introduction to Spring boot and Thymeleaf f...Frank van der Linden
The world of (XPages) developer is moving fast. Customers rethinking platforms and solutions. Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can "just run". In combination with Thymeleaf can it be good alternative for your XPages applications.
In this session I give an introduction of Spring Boot and Thymeleaf and how to get started. I will show the differences and similarities between Spring Boot in combination with Thymeleaf and XPages.
I will explain the challenges I faced when moving an application.
DEV-1129 How Watson, Bluemix, Cloudant, and XPages Can Work Together In A Rea...Frank van der Linden
The role of a human resources employee can be hard work when it comes to filtering hundreds or thousands of job applications. Often, the cover letters are submitted in unstructured formats, making data organization and identification of interesting job applications difficult. In this session, we will share a look behind the scenes of the award-winning HR Assistant application, which uses a combination of IBM Bluemix, Watson and a Cloudant database to improve the recruitment process. See how we integrate these different technologies and display the content graphically using XPages, along with how the development progressed and the challenges we faced.
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
Java and in particular OSGi are now very important parts of the Notes/Domino app dev model. In this session, you will learn what techniques can be utilized to process background jobs for XPages applications. Whether you want to replace your existing agents with Domino OSGi Tasklet Services (DOTS) or use Eclipse Jobs to run time-consuming routines without interrupting the use of your application - we will show you real life examples of why and how. You should also consider attending this session to hear about some suprises you don't want to miss...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
PHP Frameworks: I want to break free (IPC Berlin 2024)Ralf Eggert
In this presentation, we examine the challenges and limitations of relying too heavily on PHP frameworks in web development. We discuss the history of PHP and its frameworks to understand how this dependence has evolved. The focus will be on providing concrete tips and strategies to reduce reliance on these frameworks, based on real-world examples and practical considerations. The goal is to equip developers with the skills and knowledge to create more flexible and future-proof web applications. We'll explore the importance of maintaining autonomy in a rapidly changing tech landscape and how to make informed decisions in PHP development.
This talk is aimed at encouraging a more independent approach to using PHP frameworks, moving towards a more flexible and future-proof approach to PHP development.
UiPath Test Automation using UiPath Test Suite series, part 3DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 3. In this session, we will cover desktop automation along with UI automation.
Topics covered:
UI automation Introduction,
UI automation Sample
Desktop automation flow
Pradeep Chinnala, Senior Consultant Automation Developer @WonderBotz and UiPath MVP
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
State of ICS and IoT Cyber Threat Landscape Report 2024 previewPrayukth K V
The IoT and OT threat landscape report has been prepared by the Threat Research Team at Sectrio using data from Sectrio, cyber threat intelligence farming facilities spread across over 85 cities around the world. In addition, Sectrio also runs AI-based advanced threat and payload engagement facilities that serve as sinks to attract and engage sophisticated threat actors, and newer malware including new variants and latent threats that are at an earlier stage of development.
The latest edition of the OT/ICS and IoT security Threat Landscape Report 2024 also covers:
State of global ICS asset and network exposure
Sectoral targets and attacks as well as the cost of ransom
Global APT activity, AI usage, actor and tactic profiles, and implications
Rise in volumes of AI-powered cyberattacks
Major cyber events in 2024
Malware and malicious payload trends
Cyberattack types and targets
Vulnerability exploit attempts on CVEs
Attacks on counties – USA
Expansion of bot farms – how, where, and why
In-depth analysis of the cyber threat landscape across North America, South America, Europe, APAC, and the Middle East
Why are attacks on smart factories rising?
Cyber risk predictions
Axis of attacks – Europe
Systemic attacks in the Middle East
Download the full report from here:
https://sectrio.com/resources/ot-threat-landscape-reports/sectrio-releases-ot-ics-and-iot-security-threat-landscape-report-2024/
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.
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.
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Tobias Schneck
As AI technology is pushing into IT I was wondering myself, as an “infrastructure container kubernetes guy”, how get this fancy AI technology get managed from an infrastructure operational view? Is it possible to apply our lovely cloud native principals as well? What benefit’s both technologies could bring to each other?
Let me take this questions and provide you a short journey through existing deployment models and use cases for AI software. On practical examples, we discuss what cloud/on-premise strategy we may need for applying it to our own infrastructure to get it to work from an enterprise perspective. I want to give an overview about infrastructure requirements and technologies, what could be beneficial or limiting your AI use cases in an enterprise environment. An interactive Demo will give you some insides, what approaches I got already working for real.
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualityInflectra
In this insightful webinar, Inflectra explores how artificial intelligence (AI) is transforming software development and testing. Discover how AI-powered tools are revolutionizing every stage of the software development lifecycle (SDLC), from design and prototyping to testing, deployment, and monitoring.
Learn about:
• The Future of Testing: How AI is shifting testing towards verification, analysis, and higher-level skills, while reducing repetitive tasks.
• Test Automation: How AI-powered test case generation, optimization, and self-healing tests are making testing more efficient and effective.
• Visual Testing: Explore the emerging capabilities of AI in visual testing and how it's set to revolutionize UI verification.
• Inflectra's AI Solutions: See demonstrations of Inflectra's cutting-edge AI tools like the ChatGPT plugin and Azure Open AI platform, designed to streamline your testing process.
Whether you're a developer, tester, or QA professional, this webinar will give you valuable insights into how AI is shaping the future of software delivery.
3. Disclaimer
All the code and the demos in this session will use the Java
Notes Objects which are part of the IBM/Lotus Notes
product.
For a modern way of Java coding with Notes Objects
please use the OpenNTF Domino API.
Please visit the session of Paul Withers and Martin Jinoch.
Or even better use OpenNTF essentials
17-3-2014 @EngageUG #engageug 3
4. Roadmap
• Notes objects in memory
• Use of JSON
• Managed beans
• Java tip for XPages
• Date checks
• Utility class
• Extending classes
• Use of finally
17-3-2014 @EngageUG #engageug 4
6. Bad practice
• Notes objects are not serializable
• Will not recycled the Java way, it will keep a pointer to the
C object
• Can cause out of memory
17-3-2014 @EngageUG #engageug 6
20. The requirements
• Needs to be Serializable
• At least one constructor without parameters
• Needs to be registrated in the Faces-config.xml
• Properties have Getters and Setters
17-3-2014 @EngageUG #engageug 20
21. Faces-config.xml syntax
• Name of the bean
• Full qualified class name
• Scope of the bean
• Optional, initialize properties
17-3-2014 @EngageUG #engageug 21
22. Use the managed beans
• Do the calculation in the class
• Use Expression Language to access properties
• Minimize use of SSJS
• Some examples
17-3-2014 @EngageUG #engageug 22
23. Java tips for XPages
17-3-2014 @EngageUG #engageug 23
24. Utility class
• All kind of methods
• Always available as static class
• I added some methods who were
translated from SSJS
17-3-2014 @EngageUG #engageug 24
25. Date checks
• Remember the TimeDifference horror
• Java provide nice Date checks
• Like… Date.before(Date) or Date.after(Date)
17-3-2014 @EngageUG #engageug 25
26. Extending a class
• Extend a base class
• Use the methods of the base class
17-3-2014 @EngageUG #engageug 26
27. Extending a class
• Using the class
• In a XPage
17-3-2014 @EngageUG #engageug 27
29. Credits
• DominoDocument, thanks Jesse Gallaghar for pointing me in the right direction.
• Utility Class, the base taken from the Help Application from OpenNTF
• Presentation, reveal.js
• Demo database runs on Domino 9.0.1
• Demo database needs the Extension Library from OpenNTF
• XPages Java doc, http://public.dhe.ibm.com/software/dw/lotus/Domino-
Designer/JavaDocs/XPagesExtAPI/8.5.2/index.html?overview-summary.html
17-3-2014 @EngageUG #engageug 29