Modern development practices involve much more than editing
and running code. Typical development environments include bug
trackers, source control services, code review tools and build
servers. This talk will show how these systems can be integrated in
Eclipse to rid the developer of the need of leaving the IDE to
interact with external systems, with the benefits of having all the
tools in one place.
Effective web application development with Apache SlingRobert Munteanu
Apache Sling is an innovative web framework built on top of the Java Content Repository (JCR), that uses OSGi for its component model and fosters RESTful application design. This talk shows how Sling integrates various standard-based technologies, like OSGi and the Content Repository API for Java to create a coherent framework for web application development. We will walk through the development of a simple application with minimal effort and demonstrate how to productize the resulting application. We will pay special attention to some approaches which are not yet part of mainstream development, such as using OSGi for dependecy injection and JCR for persistence.
Translated presentation slides of my talk about the FormulaPi Autonomous Robot Programming Challenge (Raspberry Pi based, summer and winter series 2017)
Native Javascript apps with PhoneGap by Martin de KeijzerCodemotion
Writing applications for phones has been a daunting task since every platform uses it’s own language and API’s. PhoneGap will solve this problem for you by utilizing the browser capabilities. In this session we will see how we can turn a web based application into a native app. We will also look at posibilites to integrate native functionality, like the camera or accelerometer and deploying your app via PhoneGap Build which easily builds your application for all platforms.
Modern development practices involve much more than editing
and running code. Typical development environments include bug
trackers, source control services, code review tools and build
servers. This talk will show how these systems can be integrated in
Eclipse to rid the developer of the need of leaving the IDE to
interact with external systems, with the benefits of having all the
tools in one place.
Effective web application development with Apache SlingRobert Munteanu
Apache Sling is an innovative web framework built on top of the Java Content Repository (JCR), that uses OSGi for its component model and fosters RESTful application design. This talk shows how Sling integrates various standard-based technologies, like OSGi and the Content Repository API for Java to create a coherent framework for web application development. We will walk through the development of a simple application with minimal effort and demonstrate how to productize the resulting application. We will pay special attention to some approaches which are not yet part of mainstream development, such as using OSGi for dependecy injection and JCR for persistence.
Translated presentation slides of my talk about the FormulaPi Autonomous Robot Programming Challenge (Raspberry Pi based, summer and winter series 2017)
Native Javascript apps with PhoneGap by Martin de KeijzerCodemotion
Writing applications for phones has been a daunting task since every platform uses it’s own language and API’s. PhoneGap will solve this problem for you by utilizing the browser capabilities. In this session we will see how we can turn a web based application into a native app. We will also look at posibilites to integrate native functionality, like the camera or accelerometer and deploying your app via PhoneGap Build which easily builds your application for all platforms.
Cyber Security: User Access Pitfalls, A Case Study Approach Aviva Spectrum™
Worried your passwords are not strong enough for today’s sophisticated hackers? Cyber security breaches happen every day, as evidenced in recent headlines. Presentation covers key User Access threats both internal and external and ways to protect yourself and your company from malicious hackers. Learn from key case studies.
Ce talk est une introduction au Secure Coding pour Java. Il s'efforcera de présenter via différents exemples les bonnes pratiques permettant de développer de manière pragmatique une application java sécurisée. Nous aborderons aussi bien des pratiques fonctionnelles que des morceaux de codes java à erreurs et leur correctifs.
Top 10 claims interview questions with answersanielrodd8
In this file, you can ref interview materials for claims such as, claims situational interview, claims behavioral interview, claims phone interview, claims interview thank you letter, claims interview tips …
A snapshot of the 2015/16 statistics from the Employment Tribunal, a comparison to the previous 2 years, how many claims have been brought, the average and highest awards.
Of Microservices and Microservices - Robert Munteanumfrancis
OSGi Community Event 2016 Presentation by Robert Munteanu (Adobe Systems Inc)
Microservices are definitely the hot topic du jour . Everyone ( and their dog ) is using microservices or migrating towards them. To make things more interesting, the OSGi community has been talking about microservices for 6 years now, so now we have two clashing definitions of the term.
Besides the dreaded monolith and the famed microservices-based architecture there is plenty of room for a middle ground, where an API gateway mediates between a host of microservices and their consumers. Such a gateway solves multiple cross-cutting concerns, such as authentication, API standardisation, logging and decoupling the API evolution. As it turns out, OSGi is an ideal setting for building such an application.
The API gateway implementation demoed is based on Apache Sling – an innovative web framework built on top of the Java Content Repository (JCR), that uses OSGi for its component model and fosters RESTful application design. Although we will use Apache Sling for examples, previous knowledge of Sling or its components is not required.
Microservices are definitely the hot topic du jour . Everyone ( and their dog ) is using microservices or migrating towards them. To make things more interesting, the OSGi community has been talking about microservices for 6 years now, so now we have two clashing definitions of the term.
Besides the dreaded monolith and the famed microservices-based architecture there is plenty of room for a middle ground, where an API gateway mediates between a host of microservices and their consumers. Such a gateway solves multiple cross-cutting concerns, such as authentication, API standardisation, logging and decoupling the API evolution. As it turns out, OSGi is an ideal setting for building such an application.
The API gateway implementation demoed is based on Apache Sling - an innovative web framework built on top of the Java Content Repository (JCR), that uses OSGi for its component model and fosters RESTful application design. Although we will use Apache Sling for examples, previous knowledge of Sling or its components is not required.
Apache Sling as a Microservices Gateway
---
Microservices are definitely the hot topic _du jour_ . Everyone ( and their dog ) is using microservices or migrating towards them. However, there is a gap between the enthusiam for microservices and the ability to create and maintain the infrastructure and culture to effectively use microservices.
Apache Sling is an innovative web framework built on top of the Java Content Repository (JCR), that uses OSGi for its component model and fosters RESTful application design. And, as we will see, it is also perfect match for a microservices gateway.
In this talk we will review the pros and cons of microservices and monoliths, and look for middle road that smaller organisations that follow to use services productively. One of the approaches we will outline and demo is an API gateway built on top of Apache Sling, used to adress the cross-cutting concerns that would otherwise be reimplemented by all microservices.
Secure by Default Web Applications with Apache SlingRobert Munteanu
A product that works is not done, as there are many facets to consider – availability, scalability, security. Of those, security is probably the most expensive to get wrong.
By analysing a simple web application built on top of Apache Sling and its threat model, we will review the main attack vectors and how they can be mitigated. You will see what the general approaches are and also how Apache Sling allows you to eliminate entire classes of vulnerabilities by using secure-by-default components. Although we will use Apache Sling for examples, previous knowledge of Sling or its components is not required.
Cyber Security: User Access Pitfalls, A Case Study Approach Aviva Spectrum™
Worried your passwords are not strong enough for today’s sophisticated hackers? Cyber security breaches happen every day, as evidenced in recent headlines. Presentation covers key User Access threats both internal and external and ways to protect yourself and your company from malicious hackers. Learn from key case studies.
Ce talk est une introduction au Secure Coding pour Java. Il s'efforcera de présenter via différents exemples les bonnes pratiques permettant de développer de manière pragmatique une application java sécurisée. Nous aborderons aussi bien des pratiques fonctionnelles que des morceaux de codes java à erreurs et leur correctifs.
Top 10 claims interview questions with answersanielrodd8
In this file, you can ref interview materials for claims such as, claims situational interview, claims behavioral interview, claims phone interview, claims interview thank you letter, claims interview tips …
A snapshot of the 2015/16 statistics from the Employment Tribunal, a comparison to the previous 2 years, how many claims have been brought, the average and highest awards.
Of Microservices and Microservices - Robert Munteanumfrancis
OSGi Community Event 2016 Presentation by Robert Munteanu (Adobe Systems Inc)
Microservices are definitely the hot topic du jour . Everyone ( and their dog ) is using microservices or migrating towards them. To make things more interesting, the OSGi community has been talking about microservices for 6 years now, so now we have two clashing definitions of the term.
Besides the dreaded monolith and the famed microservices-based architecture there is plenty of room for a middle ground, where an API gateway mediates between a host of microservices and their consumers. Such a gateway solves multiple cross-cutting concerns, such as authentication, API standardisation, logging and decoupling the API evolution. As it turns out, OSGi is an ideal setting for building such an application.
The API gateway implementation demoed is based on Apache Sling – an innovative web framework built on top of the Java Content Repository (JCR), that uses OSGi for its component model and fosters RESTful application design. Although we will use Apache Sling for examples, previous knowledge of Sling or its components is not required.
Microservices are definitely the hot topic du jour . Everyone ( and their dog ) is using microservices or migrating towards them. To make things more interesting, the OSGi community has been talking about microservices for 6 years now, so now we have two clashing definitions of the term.
Besides the dreaded monolith and the famed microservices-based architecture there is plenty of room for a middle ground, where an API gateway mediates between a host of microservices and their consumers. Such a gateway solves multiple cross-cutting concerns, such as authentication, API standardisation, logging and decoupling the API evolution. As it turns out, OSGi is an ideal setting for building such an application.
The API gateway implementation demoed is based on Apache Sling - an innovative web framework built on top of the Java Content Repository (JCR), that uses OSGi for its component model and fosters RESTful application design. Although we will use Apache Sling for examples, previous knowledge of Sling or its components is not required.
Apache Sling as a Microservices Gateway
---
Microservices are definitely the hot topic _du jour_ . Everyone ( and their dog ) is using microservices or migrating towards them. However, there is a gap between the enthusiam for microservices and the ability to create and maintain the infrastructure and culture to effectively use microservices.
Apache Sling is an innovative web framework built on top of the Java Content Repository (JCR), that uses OSGi for its component model and fosters RESTful application design. And, as we will see, it is also perfect match for a microservices gateway.
In this talk we will review the pros and cons of microservices and monoliths, and look for middle road that smaller organisations that follow to use services productively. One of the approaches we will outline and demo is an API gateway built on top of Apache Sling, used to adress the cross-cutting concerns that would otherwise be reimplemented by all microservices.
Secure by Default Web Applications with Apache SlingRobert Munteanu
A product that works is not done, as there are many facets to consider – availability, scalability, security. Of those, security is probably the most expensive to get wrong.
By analysing a simple web application built on top of Apache Sling and its threat model, we will review the main attack vectors and how they can be mitigated. You will see what the general approaches are and also how Apache Sling allows you to eliminate entire classes of vulnerabilities by using secure-by-default components. Although we will use Apache Sling for examples, previous knowledge of Sling or its components is not required.
Continuous Updating with VersionEye at code.talks 2014Robert Reiz
These are the slides from the "Continuous Updating with VersionEye" talk at code.talks 2014 in Hamburg.
Nowadays modern software development without open source is almost impossible. In average a modern software project has 100 open source components. How do you keep track of these open source dependencies? How do you know that they are still alive? How do you manage the licenses for these dependencies? These are all important questions which get answered in this talk.
DevOps Pipelines and Metrics Driven Feedback LoopsAndreas Grabner
The goal behind devops is Faster Lead Times
What this really means for Software Delivery -> my Kodak/Smart Phone Analogy
How and Which Metrics to use along the Delivery Pipeline to make better decisions along the way.
Microservices are definitely the hot topic du jour . Everyone ( and their dog ) is using microservices or migrating towards them. However, the initial enthusiasm for microservices is starting to fade, and for many scenarios monoliths still seem to fit the bill.
Even more interesting, in many situations a pure approach of using either microservices or monliths is not enough. Instead a more careful, intermediate approach can be quite powerul.
This talk introduces the concepst of an API gateway for microservices as a means to adopt microservices at a more convenient pace. This approach brings about most of the benefits of microservices, but removes large chunks of complexity. We will touch upon authentication, authorization, API standardisation and logging,
The API gateway implementation demoed is based on Apache Sling - an innovative web framework built on top of the Java Content Repository (JCR), that uses OSGi for its component model and fosters RESTful application design. Although we will use Apache Sling for examples, previous knowledge of Sling or its components is not required.
[Rodrigo Pinto] Being an enterprise consultant in many companies across the globe, the most common phrase I come across each client\supplier I've helped last year is "each team as a different way to do it"In small\medium\huge companies, this is a major overkill.In this session learn how you can structure your teams, processes, tools, and development for SharePoint Enterprise solutions.
Continuous delivery requires more that DevOps. It also requires one to think differently about product design, development & testing, and the overall structure of the organization. This presentation will help you understand what it takes and why one would want to deliver value to your customers multiple times each day. #CIC
Jeff "Cheezy" Morgan Ardita Karaj
This talk looks at the challenges we are facing when prototyping for mobile and gives an overview about the tools and handy helpers that you can use to deliver tappable, sharable and testable prototypes.
How frequently does a good agile team deploy to production? Not every team is capable of deploying "on every commit". What does it take for a team to even start deploying at the end of each sprint, or each week, or each day?
Most companies don't realize that deploying more frequently often requires both significant technical change as well as cultural change. In this talk, I'll guide you through what it takes to deploy more frequently, both from the technical side of setting up pipelines as well as the organizational side of removing red tape. I'll draw on the unique challenges that teams must overcome at each step of the way, from deploying once a month all the way down to full continuous delivery. If your team has been struggling to go faster, come see how you can change to get there. And if you already are at full continuous delivery, come see how to go even faster than that!
Why Your Site is Slow: Performance Answers for Your ClientsPantheon
Surface-level technical issues like slow queries and redundant JavaScript files are often blamed when a site is slow, although there are numerous factors that can affect performance. In practice, web teams need to ask “why” repeatedly in order to get to the root cause. This presentation will dive into the many answers to this question and look for the root causes of slow sites.
What to Do—Develop Your Own Automation or Use Crowdsourced Testing?TechWell
Modern software products tend to have a rich UI that supports many user workflows, all of which need to be covered in testing. Agile organizations quickly discover that manual end-to-end testing neither supports their velocity nor provides respectable regression coverage. A common progression is to move from fully manual testing to record/replay, then to Selenium IDE style tests, then to automation based on Selenium WebDriver, perhaps with a BDD overlay. Daria Mehra has practiced this approach and shares her experience. She compares the Selenium style of automation to an alternative—crowdsourced test execution— which provides all the benefits of test automation, including continuous integration. This approach allows non-coders to express test cases in natural language, avoids the dependency on UI implementation, adds a “human eye” advantage, and provides the ability to massively parallelize tests for fast execution. Learn the pros and cons of end-to-end, UI-based test automation via Selenium compared to crowdsourcing. Find out how you can assess the suitability of these testing approaches for your needs.
Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...Applitools
Gain insights into the practical applications of ChatGPT, Bard, and other AI-based technological advancements, including GitHub CoPilot and Applitools Self-Healing Cloud, in this session with Anand Bagmar. Through specific use cases, Anand demonstrates how to enhance test automation processes—making them faster, more stable, and easier to implement.
Session recording and more info at applitools.com
Uncover how these tools can revolutionize your testing strategies and stay ahead of the curve in the ever-evolving world of test automation.
Mobile applications Development - Lecture 9
LAB
PhoneGap Development Environment
Debugging PhoneGap Applications
This presentation has been developed in the context of the Mobile Applications Development course at the Computer Science Department of the University of L’Aquila (Italy).
http://www.di.univaq.it/malavolta
A product that works is not done, as there are many facets to consider - availability, scalability, security. Of those, security is probably the most costly to get wrong.
This talk will build a threat model for a sample web application, showcasing a structured approach to securing your web application. Various vulnerabilities are shown and mitigated, based on current best practices. We take special care to show to eliminate entire classes of vulnerabilities, rather than tackling problems one by one.
The code samples will be built on top of Apache Sling, but previous knowledge of Sling is not required.
Talk delivered at BaselOne 2023
Sling is an established web application framework, with a multitude of core features and extensions. It has a very productive inner loop, with OSGi bundle deployment, JCR content editing and live configuration updates. The less-told story is how an application should be assembled, configured, deployed, and monitored.
In this talk we will present the main approaches for bootstrapping, deploying, updating, and monitoring Sling-based applications, based on Open Source tools and libraries.
The participants will gain a better understanding of the options available for managing their own Sling-based application and will be able to minimise the effort needed to manage such an application.
Java agents are a little-known but extremely powerful part of the Java ecosystem. Agents are able to transform existing classes at runtime, allowing scenarios such as logging and monitoring, hot reload or gathering code coverage. However, their usage presents a number of pitfalls as well. In this talk we will present the steps of writing a java agent from scratch, indicate various common mistakes and pain points and draw conclusions on best practices. Special care will be taken to discuss how running in an OSGi environment affects Java agents and how we can best approach integration testing in a modular environment. After this talk participants will have a better understanding of the Java instrumentation API, how it fits in with OSGi runtimes and about should / should not be done with it.
Escape the defaults - Configure Sling like AEM as a Cloud ServiceRobert Munteanu
AEM as a Cloud Service is using the same battle-tested core of Sling, Felix and Jackrabbit Oak that you are used to. Many of the large-scale architectural changes, such as container-based deployments, separation of code and content, horizontal and vertical scaling, etc, are made possible by a host of reimplementations of APIs exposed by the open-source projects that serve as the foundation of AEM.
In this talk we will explore a number of such extensions and their implications, such as Oak's principal-based authorization, getting up and running with the composite node store, or indexing in a separation of content and apps scenario.
After this talk participants will have a better understanding of various under-the-hood changes present in AEM as a Cloud Service and their practical implications for AEM development. They will also be able to set up their own tweaked Sling instance so they can experiment with such a setup.
Microservices were born out of a need to enable modularity at a technical and business level. With their mass adoption tehnical patterns and solution have started to emerge, and management using Kubernetes is one of the most encountered. Monitoring application state becomes tedious when using approaches designed for individual servers and deployments.
Prometheus and Grafana are cloud-native solutions that make monitoring of Kubernetes deployments a simple and very fruitful task.
After this talk participants will understand how to instrument their applications, gather metrics and act on high-level aggregate information.
Java agents are a little-known but extremely powerful part of the Java ecosystem. Agents are able to transform existing classes at runtime, allowing scenarios such as logging and monitoring, hot reload or gathering code coverage. However, their usage presents a number of pitfalls as well.
In this talk we will present the steps of writing a java agent from scratch, indicate various common mistakes and pain points and draw conclusions on best practices.
After this talk participants will have a better understanding of the Java instrumentation API and about should / should not be done with it.
Java agents are a little-known but extremely powerful part of the Java ecosystem. Agents are able to transform existing classes at runtime, allowing scenarios such as logging and monitoring, hot reload or gathering code coverage. However, their usage presents a number of pitfalls as well.
In this talk we will present the steps of writing a java agent from scratch, indicate various common mistakes and pain points and draw conclusions on best practices. Special care will be taken to discuss how running in an OSGi environment affects Java agents and how we can best approach integration testing in a modular environment.
After this talk participants will have a better understanding of the Java instrumentation API, how it fits in with OSGi runtimes and about should / should not be done with it.
Kubernetes is quickly becoming the de facto deployment platform for container runtimes. New applications can be written with containers in mind, but existing applications are not always aligned to the new best practices.
In this talk we will present how an existing application can be deployed on a Kubernetes platform, exploring various patterns such as scaling out, centralised logging and monitoring, content distribution and persistence.
After this talk participants will gain a better understanding about how existing applications can be molded into a cloud-native ones with reasonable effort.
Kubernetes is quickly becoming the de facto deployment platform for container runtimes. Sling provides a quick out-of-the box experience using the Starter jar, but this kind of setup is not always easy to deploy in containers.
In this talk we will present how a Sling application can be deployed on a Kubernetes platform, exploring various patterns such as scaling out, centralised logging and monitoring, content distribution and persistence.
After this talk participants will gain a better understanding about how Sling can be molded into a cloud-native applications without sacrificing the features that make Sling a strong development platform.
From Monolith to Modules - breaking apart a one size fits all product into mo...Robert Munteanu
Adobe Experience Manager as the biggest enterprise application built on the Apache Sling stack over the years was built with a monolithic product perspective. Taming the growth over time and tackling upcoming challenges led to a situation were a transition towards a modular product, where large features can be gracefully removed at runtime, becomes unavoidable.
With this talk we want to provide insights on how Adobe uses the available technologies in the stack, extends the stack and transforms the own practices to cut the product in loosely coupled modules with minimal impact on existing consumers. We will be identifying patterns on OSGi, content and scripting side to eliminate and prevent hard wiring and highlight pending challenges and our thoughts on how to resolve that. Last but not least we will share our experience on how such a transition impacts our engineering flow and quality assurance practices.
The Sling developer tooling consists of many projects: Eclipse plug-ins, Maven archetypes and Maven plug-ins are the most widely known. This talk will showcase the results of an initiative to make the Sling IDE tooling less reliant on Eclipse and more usable in other environments.
After this talk participants will have a better overview of the various developer tools available for Apache Sling and will be able to choose the tools that make them more productive, irrespective of the IDE they use.
Scaling up development of a modular code baseRobert Munteanu
Microservices are quickly becoming one of the preferred deployment models in the software industry. Much has been said about the runtime impact of microservices, but less about how they impact the development process. This talk will discuss the details of moving from a single monolithic codebase to multiple repositories in terms of the development process. We will present the impact of modularisation on source control, continuous integration, code reviews, IDEs and public discussion on chat/email. After this talk attendees will have a better understanding on the impact of the development process of modular development.
Scaling up development of a modular code baseRobert Munteanu
OSGi offers developers excellent tools for creating modular applications. We have come to have a good understanding of the runtime impact of modularity, but less has been spoken of the impact of modularity on the development process.
This talk will discuss the details of moving a large OSGi project from a single monolithic codebase to multiple repositories in terms of the development process. We will present the impact of modularisation on source control, continuous integration, code reviews, IDEs and public discussion on chat/email.
After this talk attendees will have a better understanding of the way they can improve their development process when dealing with OSGi or other kinds of modular applications.
Scaling up development of a modular code baseRobert Munteanu
Microservices are quickly becoming one of the preferred deployment models in the software industry. Much has been said about the runtime impact of microservices, but less about how they impact the development process.
This talk will discuss the details of moving from a single monolithic codebase to multiple repositories in terms of the development process. We will present the impact of modularisation on source control, continous integration, code reviews, IDEs and public discussion on chat/email.
After this talk attendees will have a better understanding on the impact of the development process of modular development.
Zero downtime deployments for Sling application using DockerRobert Munteanu
In this session we'll show how the Composite Node Store, a new Oak feature, can be used together with Docker to perform blue-green deployments. This kind of setup allows to dynamically change a part of the repository (containing the application code), while leaving the content part untouched. The presentation and the demo will be based on the AEM, but the concepts and tools are generally applicable to all Sling-based applications. The building blocks we'll present can be used to develop other mechanisms for zero-downtime deployments.
Scaling up development of a modular code baseRobert Munteanu
Microservices are quickly becoming one of the preferred deployment models in the software industry. Much has been said about the runtime impact of microservices, but less about how they impact the development process.
This talk will discuss the details of moving from a single monolithic codebase to multiple repositories in terms of the development process. We will present the impact of modularisation on source control, continous integration, code reviews, IDEs and public discussion on chat/email.
After this talk attendees will have a better understanding on the impact of the development process of modular development.
This talk contains an overview of the Sling IDE tooling which is actively developed under the Apache Sling project.
Developers attending this talk will get a better understanding of how the Sling IDE tooling can help them be more productive, whether they are working with bundles only with content packages as well.
Apache Sling as an OSGi-powered REST middlewareRobert Munteanu
Apache Sling is an innovative web framework built on top of the Java Content Repository (JCR), that uses OSGi for its component model and fosters RESTful application design.
This presentation will showcase how the Apache Sling framework can be used to build a unified REST-based middleware for multiple data sources, such as MongoDB, Apache Cassandra, Apache Jackrabbit Oak or classical relational databases. In doing so it will present the benefits that come from a single Resource API over multiple data stores, both at the library level and at the HTTP boundary.
Effective Web Application Development with Apache SlingRobert Munteanu
Apache Sling is an innovative web framework built on top of the Java Content Repository (JCR), that uses OSGi for its component model and fosters RESTful application design.
This talk shows how Sling integrates various standard-based technologies, like OSGi and the Content Repository API for Java to create a coherent framework for web application development. We will walk through the development of a simple application with minimal effort and demonstrate how to productize the resulting application.
We will pay special attention to some approaches which are not yet part of mainstream development, such as using OSGi for dependecy injection and JCR for persistence.
Building domain-specific testing tools : lessons learned from the Apache Slin...Robert Munteanu
The Apache Sling project has built a number of testing tools which aid in testing applications that are built on top of this framework - REST-based, assembled using OSGi and backed by JCR.
We will review how those testing tools fit in with domain-agnostic testing tools such as JUnit and Mockito and what the benefits and pitfalls are when building your own domain-specific tools.
Similar techniques apply to projects not using the same technology stack, so the discussion will bring value to all projects which can benefit from domain-specific testing tools.
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
💥 Speed, accuracy, and scaling – discover the superpowers of GenAI in action with UiPath Document Understanding and Communications Mining™:
See how to accelerate model training and optimize model performance with active learning
Learn about the latest enhancements to out-of-the-box document processing – with little to no training required
Get an exclusive demo of the new family of UiPath LLMs – GenAI models specialized for processing different types of documents and messages
This is a hands-on session specifically designed for automation developers and AI enthusiasts seeking to enhance their knowledge in leveraging the latest intelligent document processing capabilities offered by UiPath.
Speakers:
👨🏫 Andras Palfi, Senior Product Manager, UiPath
👩🏫 Lenka Dulovicova, Product Program Manager, UiPath
Welocme to ViralQR, your best QR code generator.ViralQR
Welcome to ViralQR, your best QR code generator available on the market!
At ViralQR, we design static and dynamic QR codes. Our mission is to make business operations easier and customer engagement more powerful through the use of QR technology. Be it a small-scale business or a huge enterprise, our easy-to-use platform provides multiple choices that can be tailored according to your company's branding and marketing strategies.
Our Vision
We are here to make the process of creating QR codes easy and smooth, thus enhancing customer interaction and making business more fluid. We very strongly believe in the ability of QR codes to change the world for businesses in their interaction with customers and are set on making that technology accessible and usable far and wide.
Our Achievements
Ever since its inception, we have successfully served many clients by offering QR codes in their marketing, service delivery, and collection of feedback across various industries. Our platform has been recognized for its ease of use and amazing features, which helped a business to make QR codes.
Our Services
At ViralQR, here is a comprehensive suite of services that caters to your very needs:
Static QR Codes: Create free static QR codes. These QR codes are able to store significant information such as URLs, vCards, plain text, emails and SMS, Wi-Fi credentials, and Bitcoin addresses.
Dynamic QR codes: These also have all the advanced features but are subscription-based. They can directly link to PDF files, images, micro-landing pages, social accounts, review forms, business pages, and applications. In addition, they can be branded with CTAs, frames, patterns, colors, and logos to enhance your branding.
Pricing and Packages
Additionally, there is a 14-day free offer to ViralQR, which is an exceptional opportunity for new users to take a feel of this platform. One can easily subscribe from there and experience the full dynamic of using QR codes. The subscription plans are not only meant for business; they are priced very flexibly so that literally every business could afford to benefit from our service.
Why choose us?
ViralQR will provide services for marketing, advertising, catering, retail, and the like. The QR codes can be posted on fliers, packaging, merchandise, and banners, as well as to substitute for cash and cards in a restaurant or coffee shop. With QR codes integrated into your business, improve customer engagement and streamline operations.
Comprehensive Analytics
Subscribers of ViralQR receive detailed analytics and tracking tools in light of having a view of the core values of QR code performance. Our analytics dashboard shows aggregate views and unique views, as well as detailed information about each impression, including time, device, browser, and estimated location by city and country.
So, thank you for choosing ViralQR; we have an offer of nothing but the best in terms of QR code services to meet business diversity!
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Ramesh Iyer
In today's fast-changing business world, Companies that adapt and embrace new ideas often need help to keep up with the competition. However, fostering a culture of innovation takes much work. It takes vision, leadership and willingness to take risks in the right proportion. Sachin Dev Duggal, co-founder of Builder.ai, has perfected the art of this balance, creating a company culture where creativity and growth are nurtured at each stage.
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
91mobiles recently conducted a Smart TV Buyer Insights Survey in which we asked over 3,000 respondents about the TV they own, aspects they look at on a new TV, and their TV buying preferences.
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
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.
Essentials of Automations: Optimizing FME Workflows with ParametersSafe Software
Are you looking to streamline your workflows and boost your projects’ efficiency? Do you find yourself searching for ways to add flexibility and control over your FME workflows? If so, you’re in the right place.
Join us for an insightful dive into the world of FME parameters, a critical element in optimizing workflow efficiency. This webinar marks the beginning of our three-part “Essentials of Automation” series. This first webinar is designed to equip you with the knowledge and skills to utilize parameters effectively: enhancing the flexibility, maintainability, and user control of your FME projects.
Here’s what you’ll gain:
- Essentials of FME Parameters: Understand the pivotal role of parameters, including Reader/Writer, Transformer, User, and FME Flow categories. Discover how they are the key to unlocking automation and optimization within your workflows.
- Practical Applications in FME Form: Delve into key user parameter types including choice, connections, and file URLs. Allow users to control how a workflow runs, making your workflows more reusable. Learn to import values and deliver the best user experience for your workflows while enhancing accuracy.
- Optimization Strategies in FME Flow: Explore the creation and strategic deployment of parameters in FME Flow, including the use of deployment and geometry parameters, to maximize workflow efficiency.
- Pro Tips for Success: Gain insights on parameterizing connections and leveraging new features like Conditional Visibility for clarity and simplicity.
We’ll wrap up with a glimpse into future webinars, followed by a Q&A session to address your specific questions surrounding this topic.
Don’t miss this opportunity to elevate your FME expertise and drive your projects to new heights of efficiency.
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionAggregage
Join Maher Hanafi, VP of Engineering at Betterworks, in this new session where he'll share a practical framework to transform Gen AI prototypes into impactful products! He'll delve into the complexities of data collection and management, model selection and optimization, and ensuring security, scalability, and responsible use.
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Tdd Primer
1. Test-driven development primer
Test-driven development primer
Robert Munteanu
http://robert.muntea.nu
http://robert.muntea.nu
@rombert
2. Who I am
$DAYJOB
FOSS
Adobe Experience
MantisBT
Management
Mylyn Connector for
− Apache Sling MantisBT
− Apache Jackrabbit
Mylyn Connector for
Review Board
− Apache Felix
Apache Sling
http://robert.muntea.nu
@rombert
3. Agenda
●
Intro to automated testing of software
●
Test-driven development
●
Top-down Test-driven development
●
General industry practices around testing
http://robert.muntea.nu
@rombert
4. Not on the agenda
●
Performance testing
●
Fuzzing
●
Security testing
●
Internationalization and localisation testing
●
GUI-driven testing ( play and record )
http://robert.muntea.nu
@rombert
5. I. Role of testing in software products
Testing workflows
http://robert.muntea.nu
@rombert
6. Testing workflows
Developer ships code
to tester for validation
http://robert.muntea.nu
@rombert
8. Testing workflows
Developer and QE
developer and QE
tester work together
http://robert.muntea.nu
@rombert
9. Testing workflows
My code works,
dammit
http://robert.muntea.nu
@rombert
10. Testing automation
●
Supported by a testing framework
●
Your favourite language probably has it
●
Makes it easy to separate the test code from the
production code
http://robert.muntea.nu
@rombert
12. Testing automation
This is what you
usually get at
development time
http://robert.muntea.nu
@rombert
13. Types of tests
The testing pyramid
is a popular way of
classifying tests
http://robert.muntea.nu
@rombert
14. Unit tests
●
Small, self-contained
●
No external dependencies
●
Fastest type of test ( under 1 second )
●
Should be the bulk of your test
http://robert.muntea.nu
@rombert
15. Service tests
●
Larger tests
●
Usually interact with external systems
●
SQL-based tests are a good example
http://robert.muntea.nu
@rombert
16. UI tests
●
Application instance up and running
●
Interacts with the UI rather than in-process
●
Most programatic UI testing uses Selenium
http://robert.muntea.nu
@rombert
17. Q&A
End of first session, your questions?
http://robert.muntea.nu
@rombert
18. Test-Driven development
●
Rapid feedback for your changes
●
Ensures implementation and API are minimal
●
Safety net when refactoring or making other
changes (YAGNI)
●
Saves everyone time and money
http://robert.muntea.nu
@rombert
29. Q&A
End of third session, your questions?
http://robert.muntea.nu
@rombert
30. Code quality
Test code quality is the same as production code
quality
●
Fast
●
Stable
●
Meaningful
http://robert.muntea.nu
@rombert
31. Code coverage
●
Measure it, know your weak points
●
Don't obsess over percentages
http://robert.muntea.nu
@rombert
32. Automate, automate, automate
●
Don't rely only on your IDE for tests
●
Make sure it works with a build tool
●
Make sure it works on other machines as well
http://robert.muntea.nu
@rombert
38. Thank you
Robert Munteanu
http://robert.muntea.nu
http://robert.muntea.nu
@rombert
Editor's Notes
Bun venit la prezentare Repet titlul prezentării
Contribuitor la proiecte open source - partial for fun, parțial ca să keep up to date și sa încerc alte tehnologii - CS la Adobe, lucrez cu platforma CQ - baza open source a platformei este Apache Sling și astfel am avut contact Hai să vedem despre voi – câți aveți o minimă experiență în limbaje de programare high-level ( Java, PHP, Ruby etc ) ; dar C/C++ ; dar ASM? - câți ați testat automat un program de calculator ( dacă da, cu ce, share un pic la experiență )
Acestea sunt cele patru puncte pe care vreau să le ating. Avem destul timp la dispoziție și putem devia oricând. Dacă sunt lucruri pe care vreți să le discutăm mai în detaliu opriți-mă și întrebați. Prefer să fiu întrerupt, sigur nu uit poezia :-) Nu este necesar să folosiți calculatorul sau un program pentru a lucra. Eu voi avea și câteva demo-uri ; daca vreți să le încercați și voi e OK ( aveți nevoie de acces la rețea ) dar nu este obligatoriu. Demo-urile vor fi în Java, dar nu este necesar decât să puteți să citiți Java.
Testarea ca și domeniu de discuție e fantastic de mare și o să ne limităm la testarea automată legată de funcționarea codului în condiții normale să-i spunem. Accentul va fi pe test-driven development ca și specializare a practicii de testare automată. Dacă vreți să discutăm despre subiectele de mai sus sau despre alte subiecte de testare o putem face în ultima dintre sesiuni, cea de practici generale.
Când avem un flow de tipul eu scriu cod, tu testezi, de multe ori e un semn al unui proces de tip waterfall care s-a propagat în stilul de lucru al echipei. Am încercat să fiu subtil cu poza :-) Este cineva familiar cu modelul de dezoltare waterfall? Pe scurt, avem Cerințe → Design → Implementare → Verificare → Mentenanță. Fără buclă de feedback. Ce înseamnă asta în practică ? Eu ca dezvoltator primesc rezultatele testării cu întârziere ( eventual în timp ce lucrez la altceva ) ; tester-ul e o resursă care probabil nu e alocată mereu echipei ; o viteză scăzută de reacție și timp de dezvoltare scăzut.
Putem să avem și altă extremă, cea în care nu există tester, iar dezvoltatorul testează totul automat. Cum vă sună asta, e bine sau rău? Evident, e bine și rău :-) Bine pentru că arată o înclinație înspre testare, și clar bucla de feedback pe care o am de la un test rulat local pe calculatorul meu ( < 1 secundă ) este mult mai scurtă decât câteva ore ( în cazul bun ) în cazul unui tester. Multe probleme vor fi rezolvate foarte rapid. Rău este că dezvoltatorul nu poate testa tot – el a scris codul și inconștient va testa ce a scris ; dacă ar fi știut ce nu merge n-ar mai fi scris codul astfel. În plus, un dev nu poate face ca un tester fuzzing, security testing etc
Aici e cumva o situație ideală, în care avem un dezvoltator, un dezvoltator QE ( sau SET etc ) și un tester, fiecare cu rolul lui. QE dev-ul se ocupă de framework-uri de testare, 'promoveză' ideea de software testabil și de calitate internă și poate să scrie anumite teste. Dev-ul își scrie și el testele. La final un tester face partea manuală, fie pentru că e prea complicat de automatizat, fie pentru că nu trebuie automatizată ( fuzzing, penetrating testing etc ) Totul pare bine și frumos aici dar … banii :-)
Nu am pus acest slide doar pentru valoarea artistică :-) Se întâmlă mai des decât ați crede. Și înainte de acest meme am întâlnit expresia “cel mai bun test este producția”. Și chiar asta era abordarea. Ce ar fi bun aici? Timpul dezvoltatorului, lipsă de stres :-) Ce ar fi rău? Calitatea se duce de râpă, dificultatea în testare, nu există teste de regresie, nu există pași clar de reproducere... Cam tot e rău aici.
Testarea automată se face în general cu sprijinul unui framework de testare. Fiecare limbaj de programare are unul ; am găsit de la Java la C la PHP la PL/SQL Nu mai avem nevoie de a scrie cod de infrastructură pentru teste, e suficient să includem o bibliotecă externă în proiectul nostru și putem să scriem teste automate.
Aici avem un foarte simplu exemplu de o clasă de testat și de un test. Este timpul de cod pe care nu îl scriem niciodată, dar este un exemplu perfect pentru demonstrație. În clasa de producție avem o funcție, iar în clasa de test avem un caz de test. Cazul de test este concis, ușor de înțeles, și chiar se poate citi cu voce tare: assertThat add(1,1) is (2). Testul se poate rula din linie de comandă sau dintr-un IDE, spre exemplu.
În timp de dezvolt nu am decât de dat un click de dreapta pe clasa de test și Run As → Junit test . Voi vedea toate metodele testate și apoi văd care au trecut, care au picat, motivele pentru care au picat și un stack trace dacă e cazul. De asta prefer un IDE față de un editor de text simplu. Ăsta e un sfat general pe care vi l-aș da, nu neapărat legat de testare. Alegeți-vă cu grijă uneltele cu care lucrați, vă pot ține în loc sau vă pot ajuta să fiți mult, mult mai productivi.
Piramida testării este o modalitate utilă de a vizualiza ce fel de teste putem scrie și mai ales cum să le împărțim. Compartimentarea sugerează că avem o bază de teste unitare, un strat de testare a serviciilor și un vârf al testelor care interacționează cu interfața. Ca și volum al testelor recomandarea este să avem cât mai multe teste unitare, un număr redus de teste care interacționează cu serviciilor și un număr minim de teste care interacționează cu interfața. Explicația este că pe verticală crește complexitatea, timpul de execuție și instabilitatea.
Testele unitare sunt poate cel mai la îndemână mod de teste pe care îl avem. Clasa (trivială) pe care am văzut-o mai devreme este un exemplu de test unitar. Testele unitare testează o unitate de cod, fără a lua în calcul alte unități/sisteme. În Java, unitatea este în mod normal o clasă. Interacțiunile cu alte sisteme 1) introduc elemente aleatoare în test ( cum ar fi un test unitate care transferă 250 MB prin FTP? ) și 2) reduc viteza de rulare. Teste extrem de rapide duc la posibilitatea de a rula întreaga baterie de teste foarte rapid. Cum ar fi să rulezi 10,000 de teste în mai puțin de o secundă?
De cele mai multe ori nu este posibil să nu interacționezi cu alte sisteme. O bază de date ( SQL sau nu ) , Web Service-uri, un ORM ca Hibernate sunt foarte dificil de testat în izolare. Mai mult, de cele mai multe ori preferi să testezi un SELECT și să fi sigur că întoarce datele corecte, chiar dacă nu e la fel de ușor de scris ca un unit test. De genul ai o bază de date in-memory ( H2 ) pe care o creezi special pentru testul tău unitate, o populezi cu date și apoi rulezi un SELECT. La sfârșit cureți baza de date. Clar este mai încet, dar este foarte util.
De multe ori este util să ai teste care validează aplicația end-to-end, de la interfață la baza de date la rutinele low-level. De asemenea, sunt singurele teste care validează că aplicația chiar merge. Degeaba ai testele unitare care trec toate dacă ai o eroare de javascript pe home page. Sunt lente, lente, LENTE. De asemenea, sunt instabile. E o problemă dificilă să controlezi programatic un browser, să inspectezi controalele de pe pagină, sa lansezi acțiuni etc. Plus că mai nou toate aplicațiile sunt javascript-enhanced sau chiar single-page application, ceea ce complică și mai mult efortul de testare. Au rolul lor, dar trebuie ținute sub control ca număr, timp de execuție și complexitate de implementare.
Unele din avantaje nu sunt exclusive TDD, țin și de partea de automated testing. Clar cu TDD ai cel mai rapid feeback pentru schimbările tale. Un alt punct bun este că ne ajută să avem implementări și API-uri ( ce sunt API-urile? ) minimale. Ca programatori avem tendința să avem implementări complicate, care pe termen lung sunt un bagaj inutil. YAGNI – you ain't gonna need it. Timpul și costul necesare reparării unui bug sunt cele mai mici la începutul procesului de dezvoltare. Un bug prins în ciclul de testare automată de dezvoltator este cel mai ieftin. Un bug în faza de testare e ceva mai OK, dar în producție poate fi dezastruos de scump. Un algoritm de criptare slab duce la probleme de securitate, să nu mai vorbim dacă e cazul de aparatură medicală sau de soft pentru autovehicule.
În caz că nu v-am convins logic, poate cu benzi desenate merge ;-)
Un demo de câteva minute în care trecem prin pașii clasici ai TDD 1. adaug un test 2. rulez toate testele și văd dacă pică vreunul 3. scriu cod 4. rulez toate testele și văd dacă pică vreunul 5. refactor 6. GOTO 1
Un demo de câteva minute în care trecem prin pașii clasici ai TDD 1. adaug un test 2. rulez toate testele și văd dacă pică vreunul 3. scriu cod 4. rulez toate testele și văd dacă pică vreunul 5. refactor 6. GOTO 1
Într-adevăr, clasele care nu interacționează cu nimeni și nimic sunt foarte simplu de testat. Dar ce facem cu clasele care au colaboratori? Dacă folosim colaboratorii în test, nu mai este un test unitar, cu toate problemele care pot apare ( instabilitate, timp de execuție crescut, complexitate ). Abordarea preferată este de a înlocui un colaborator real cu unul fals, care reacționează așa cum îl instruim noi. Astfel de colaboratori se numesc în general stubs sau mocks, în funcție de cât de deștepți sunt. Un stub are răspunsuri predefinite. Un mock are comportament mai complex, poate să arunce excepții în anumite condiții etc
Un demo despre stub-uri.
Acum că am trecut prin tehnicile uzuale pentru testele unitare e vremea să vedem cum punem cap la cap un test care interacționează cu un serviciu extern, în cazul nostru o bază de date. Nu voi folosi un mock sau un stub, pentru că API-ul de JDBC nu e chiar simplu de mock-uit, și mă interesează dacă am scris bine un SELECT. Testul va folosi H2 – o bază de data Java, care poate fi pornită și oprită în același proces. Are avantajul de a fi foarte rapidă și ușor de folosit în teste. Dezavantajul este că de multe ori nu este folosită în producție, doar în teste, și atunci dacă sintaxa bazei de date folosite în producție diferă, apar probleme. Cum se pot rezolva? 1. Cu atenție, 2. cu teste rulate și pe baza de date de prod 3. Cu un ORM cum este hibernate.
Demo cu DAO.
Vârful piramidei e rezervat pentru testele care exersează UI-ul. Aceste teste sunt lente, mai puțin stabile, dar verifică aplicația pe de-a întregul. Folosirea acestor teste în model TDD se mai numește și ATDD – Acceptance-Driven Test development. Practic testele de UI pot fi folosite pentru a verifica în ce măsură aplicația dezvoltată corespunde cerințelor – dacă este acceptată de către client sau nu. Vom vedea cum putem scrie și executa teste de UI folosing Selenium și un wrapper peste aceasta – Thucydides.
Demo cu Selenium + Thucydides De review - Page object - Selenium model - Testul în sine - Rapoartele Thucydides
În aplicații mari testele pot ajunge la dimensiuni respectabile, poate chiar să depășească dpdv al liniilor codul productiv. Atunci este esențial ca testele să aibă o calitate ridicată. Testele lente nu vor fi rulate suficient de des. Testele instabile vor fi ignorate. Testele care nu testează nimic important vor trece tot timpul și nu aduc valoare.
Code coverage-ul ne indică în ce măsură testele noastre acoperă tot codul de producție. Sunt mai mulți indicatori – line, statement, branch . Important este să tratăm code coverage-ul ca o informație calitativă pentru a gestiona riscul, și nu ca un prag care trebuie atins.
Dacă testele sunt legate de mașina ta sau de un IDE, sunt inutile. Automatizează tot procesul, de la compilare aplicației până la împachetare ( make, ant, maven, gradle, sbt, whatever ).
Jenkins e un sistem de continuous integration ; pe scurt – la fiecare commit ( sau periodic, sau manual, sau … ) rulează un set de comenzi pe un proiect software. Cel mai adesea setul standard – compilare, testare, împachetare. Poate ține evoluția în timp a anumitor indicatori – număr de teste, teste trecute/picate etc. Extensibil până la absurd. Testele automatizate pe Jenkins au o vizibilitate sporită – mai ales când pică build-ul și vin mailuri :-)
Jenkins permite constuirea unui 'build pipeline', o înseriere de job-uri, care pot să separe pașii pentru un feedback mai rapid. Unii pași pot fi manuali, alții automați. Testele de acceptanță, mai lente, sunt un candidat ideal pentru un job separat care să fie rulat numai după ce trec testele unitare.
Din nou, Jenkins are un plugin :-) care permite configurarea unui job în funcție de un parametru variabil – axa. Este ideal – spre exemplu – pentru a putea testa aplicația pe mai multe browsere sau pe mai multe tipuri de baze de date.