Presentation about how to build flexible (using fragments), smooth (using async tasks and intent services) and "data up to date" (using loaders) Android applications.
The document discusses how to prevent JavaScript injection attacks in ASP.NET MVC applications. It describes a customer feedback website that is vulnerable to JavaScript injection by displaying user-submitted content without encoding. It then presents two approaches to prevent this: 1) HTML encoding user data when displayed in views, and 2) HTML encoding user data before saving to the database in controllers. Encoding replaces dangerous HTML characters to neutralize malicious JavaScript while preserving the data's meaning.
Flex data binding pitfalls: 10 common misuses and mistakesElad Elrom
This document summarizes 10 common mistakes when using data binding in Flex applications. These include: 1) Missing silent errors when binding fails; 2) Trying to bind classes that don't implement IPropertyChangeNotifier; 3) Using binding instead of direct assignment when not needed; 4) Forgetting to unbind objects and risking memory leaks; 5) Not customizing the default property change event; 6) Using the wrong event name in bindable tags; 7) Assuming synchronous execution of bindings; 8) Using binding instead of events in some cases; 9) Binding both a class and its properties; 10) Using two-way binding for unsupported properties. The document provides examples and explanations for each mistake.
MongoDB.local Atlanta: Introduction to Serverless MongoDBMongoDB
Serverless development with MongoDB Stitch allows developers to build applications without managing infrastructure. Stitch provides four main services - QueryAnywhere for data access, Functions for server-side logic, Triggers for real-time notifications, and Mobile Sync for offline data synchronization. These services integrate with MongoDB and other data sources through a unified API, and apply access controls and filters to queries. Functions can be used to build applications or enable data services, and are integrated with application context including user information, services, and values. This allows developers to write code without dealing with deployment or scaling.
The document describes Johannes Brodwall's philosophy of "bare-knuckle web development" which advocates for lightweight frameworks, test-driven development, and avoiding unnecessary complexity. It then demonstrates this approach through building a simple phonebook web application in Java using only the bare essentials like servlets and XML parsing. Finally, it discusses further directions this approach could be taken, such as building applications for the Norwegian agricultural authority and power grid operator.
The document discusses application-managed entity managers in Java applications. Application-managed entity managers allow Java applications like Swing programs to use JPA for persistence without requiring an EJB container. These applications manage the entity manager lifecycle directly and typically use resource-local transactions instead of JTA transactions. The document provides an example Java application that creates an entity manager factory, performs transactions to add and retrieve an entity, and closes resources.
The document discusses application-managed entity managers in Java applications. Application-managed entity managers allow Java applications like Swing programs to use JPA for persistence without requiring an EJB container. These applications manage the entity manager lifecycle directly and typically use resource-local transactions instead of JTA transactions. The document provides an example Java application that creates an entity manager factory, performs transactions to add and retrieve an entity, and closes resources.
Ajax allows for asynchronous retrieval of data from a server in the background without reloading the page. It uses a combination of technologies like XMLHttpRequest, JavaScript, and DOM to make asynchronous calls to a server and update portions of a page without reloading. The document then provides an example of how an Ajax interaction works, from making an asynchronous request to a server to processing the response and updating the HTML DOM.
The document discusses how to prevent JavaScript injection attacks in ASP.NET MVC applications. It describes a customer feedback website that is vulnerable to JavaScript injection by displaying user-submitted content without encoding. It then presents two approaches to prevent this: 1) HTML encoding user data when displayed in views, and 2) HTML encoding user data before saving to the database in controllers. Encoding replaces dangerous HTML characters to neutralize malicious JavaScript while preserving the data's meaning.
Flex data binding pitfalls: 10 common misuses and mistakesElad Elrom
This document summarizes 10 common mistakes when using data binding in Flex applications. These include: 1) Missing silent errors when binding fails; 2) Trying to bind classes that don't implement IPropertyChangeNotifier; 3) Using binding instead of direct assignment when not needed; 4) Forgetting to unbind objects and risking memory leaks; 5) Not customizing the default property change event; 6) Using the wrong event name in bindable tags; 7) Assuming synchronous execution of bindings; 8) Using binding instead of events in some cases; 9) Binding both a class and its properties; 10) Using two-way binding for unsupported properties. The document provides examples and explanations for each mistake.
MongoDB.local Atlanta: Introduction to Serverless MongoDBMongoDB
Serverless development with MongoDB Stitch allows developers to build applications without managing infrastructure. Stitch provides four main services - QueryAnywhere for data access, Functions for server-side logic, Triggers for real-time notifications, and Mobile Sync for offline data synchronization. These services integrate with MongoDB and other data sources through a unified API, and apply access controls and filters to queries. Functions can be used to build applications or enable data services, and are integrated with application context including user information, services, and values. This allows developers to write code without dealing with deployment or scaling.
The document describes Johannes Brodwall's philosophy of "bare-knuckle web development" which advocates for lightweight frameworks, test-driven development, and avoiding unnecessary complexity. It then demonstrates this approach through building a simple phonebook web application in Java using only the bare essentials like servlets and XML parsing. Finally, it discusses further directions this approach could be taken, such as building applications for the Norwegian agricultural authority and power grid operator.
The document discusses application-managed entity managers in Java applications. Application-managed entity managers allow Java applications like Swing programs to use JPA for persistence without requiring an EJB container. These applications manage the entity manager lifecycle directly and typically use resource-local transactions instead of JTA transactions. The document provides an example Java application that creates an entity manager factory, performs transactions to add and retrieve an entity, and closes resources.
The document discusses application-managed entity managers in Java applications. Application-managed entity managers allow Java applications like Swing programs to use JPA for persistence without requiring an EJB container. These applications manage the entity manager lifecycle directly and typically use resource-local transactions instead of JTA transactions. The document provides an example Java application that creates an entity manager factory, performs transactions to add and retrieve an entity, and closes resources.
Ajax allows for asynchronous retrieval of data from a server in the background without reloading the page. It uses a combination of technologies like XMLHttpRequest, JavaScript, and DOM to make asynchronous calls to a server and update portions of a page without reloading. The document then provides an example of how an Ajax interaction works, from making an asynchronous request to a server to processing the response and updating the HTML DOM.
Dependency injection is a technique to get rid of tightly coupled code.This session will give an idea about using DI in one's project with various patterns like constructor injection,setter injection and interface injection and demo of DI using Unity container.
Vaadin 8 with Spring Frameworks AutoConfigurationPeter Lehto
AutoConfiguration is an amazing feature of Spring Boot allowing integrating technologies more easily. Vaadin utilises AutoConfiguration for setting up beautiful Vaadin UIs with Spring Boot Applications. This talks tells all about how Boot's AutoConfiguration works with Vaadin and what kind of benefits it provides for developers
This document provides an overview of Google Guice, an open source Java framework for dependency injection. It discusses key Guice concepts like dependency injection, bindings, providers, and scopes. It also covers advanced topics such as aspect-oriented programming with Guice, integration with other frameworks like Spring, and using Guice in servlets. The goal of Guice is to simplify dependency management and increase testability by removing hard-coded dependencies.
The document discusses the Chain of Responsibility pattern and Command pattern. It defines each pattern, provides examples of how each can be implemented in Java code, and notes related design patterns. The Chain of Responsibility pattern involves passing a request between a chain of objects until an object handles the request, decoupling the sender and receiver. The example shows approving purchase requests by role. The Command pattern encapsulates a request as an object, allowing request parameters and receivers to be changed, decoupling invocation from execution. The example uses actions to trigger window commands.
This document provides an overview of MongoDB Stitch, which is a serverless platform for building and hosting web and mobile backends. It discusses how Stitch can be used to handle user authentication and authorization, implement server-side rules, manage data access and synchronization, and define functions and triggers that run in response to events. Stitch aims to reduce the need for complex backend infrastructure by providing an integrated set of services for user management, data storage and syncing, and serverless logic.
This document introduces Google Guice, a dependency injection framework. It discusses dependency injection, benefits like separation of concerns and easier testing. It also covers disadvantages like potential maintenance issues. The document explores the Guice API including Injector, Module, Binder and different types of bindings like linked, annotated, instance and constructor bindings. It provides a simple example using traits, classes and annotations to demonstrate dependency injection with Guice. References for more information on Guice and dependency injection are also included.
Binding business data to vaadin componentsPeter Lehto
There are two main differences between setPropertyDataSource() and setContainerDataSource() for Vaadin components:
1. Data source type - setPropertyDataSource() binds the component to a single property, while setContainerDataSource() binds it to a full Container which can contain multiple items and properties.
2. Data binding - setPropertyDataSource() binds the component value to a specific property of the current item. setContainerDataSource() does not directly bind the component, it just sets the container as the available options but does not automatically select any value. The component does not know which property in the container to use as the value.
So in summary:
- setPropertyDataSource() binds a single component to a specific property
This document provides guidance on using Mockito to test a login controller class. It recommends creating a mock login integration layer and injecting it into the login controller. It then demonstrates how to write tests using Mockito to verify the login controller's behavior in different scenarios such as successful and failed logins. It also discusses using PowerMock to mock additional elements like private fields, static methods, and constructors when needed.
Policy Injection in ASP.NET using Enterprise Library 3.0PhilWinstanley
Terminology and Buzzwords
The Policy Injection Application Block
what it does, how it works
Configuring Policies
Using Attributes
Extending the Block
custom Handlers and Matching Rules
This document discusses setting up an intermediate WCF service to connect an Android application to Dynamics AX. It describes creating a WCF service that enables REST and outputs data in JSON format for consumption by the Android application. The WCF service is configured to use authentication via headers and return sample inventory item data from AX. The Android application code shows making a request to the WCF service to get JSON data and parsing it to display in a list view.
This document discusses setting up an intermediate WCF service to connect an Android application to Dynamics AX. It describes creating a WCF service that enables REST and outputs data as JSON for consumption by the Android application. The WCF service is configured to use authentication via headers and return AX data like item lists. The document also provides code samples for the WCF service interface and implementation, as well as the Android application code to call the service, parse the JSON response, and display it in a list view.
AngularJs Workshop SDP December 28th 2014Ran Wahle
This document provides an overview and agenda for a training on AngularJS. It introduces key concepts in AngularJS like modules, dependency injection, data binding with controllers and scopes, services, filters, directives, forms, and routing. Code examples are provided to demonstrate creating modules, controllers, services, binding data between the view and model, and using built-in and custom directives. The training will cover building AngularJS applications with a focus on best practices.
The document discusses Google Guice, an open source framework for dependency injection in Java. It provides an overview of dependency injection and what problem it aims to solve. The document then covers the key aspects of Google Guice, including how to define bindings between interfaces and implementations, different types of injections, and how to integrate Guice into applications and with other frameworks.
The document discusses migrating an existing authentication system at Columbia University to the Central Authentication Service (CAS). Specifically, it addresses:
1) Integrating the legacy service registry and custom attributes into CAS.
2) Adding support for the legacy "WIND" authentication protocol to CAS to allow existing clients to continue using either the legacy or CAS protocols during migration.
3) Customizing CAS login behavior and UI to match the existing system.
KNOTX.io is an event-driven, non-blocking integration framework that uses Vert.x and RxJava. It allows for highly scalable and modular integration of modern platforms. KNOTX provides features like data ingestion from CMSs and services, forms handling, prototyping with mocks, and extensibility through pluggable modules. It handles integration challenges through a transparent, reusable, and easily replaceable modern microservices-based architecture. Performance is optimized through asynchronous non-blocking code, event-driven architecture, and reactive programming with RxJava.
Techlunch - Dependency Injection with VaadinPeter Lehto
The document discusses dependency injection (DI) with programmatic configuration. It defines DI as a mechanism where dependencies between objects are not directly created but instead satisfied by a third party - a DI container. The document outlines reasons for using DI including loose coupling and inversion of control. It provides examples of DI in Java using annotations and explains concepts such as scopes, producers and programmatic configuration. It also discusses integrating DI into Vaadin applications using CDI extensions.
This document provides an overview of best practices for Android development. It discusses topics such as UI design, including layouts and styles; using the action bar for search and progress indicators; accessibility; network connections; asynchronous tasks and services; fragments and navigation patterns; geolocation and performance; dependency injection; and recommended tools and libraries. The document provides code snippets and links to the Android developer documentation for further information on these topics.
David Marques gave a presentation on Android app development to a user group in São Paulo, Brazil. He began by introducing himself and his background in mobile development. The presentation covered the core components of Android apps including activities, services, content providers, and intent receivers. Marques explained how each component works and provided code examples. He emphasized doing background work in services on separate threads to avoid blocking the main thread.
Vadym Khondar is a senior software engineer with 8 years of experience, including 2.5 years at EPAM. He leads a development team that works on web and JavaScript projects. The document discusses reactive programming, including its benefits of responsiveness, resilience, and other qualities. Examples demonstrate using streams, behaviors, and other reactive concepts to write more declarative and asynchronous code.
Java Web Programming [8/9] : JSF and AJAXIMC Institute
This document provides an overview of JavaServer Faces (JSF) and Asynchronous JavaScript and XML (AJAX). It describes JSF as a server-side user interface framework that uses components like UIForm and UIInput to build web applications. It also explains how AJAX allows for asynchronous client-server communication using XMLHttpRequest to update parts of a page without reloading. The key technologies discussed are JSF tags, configuration files, components and validators as well as the steps involved in an AJAX request like creating an XMLHttpRequest object and processing the response.
Dependency injection is a technique to get rid of tightly coupled code.This session will give an idea about using DI in one's project with various patterns like constructor injection,setter injection and interface injection and demo of DI using Unity container.
Vaadin 8 with Spring Frameworks AutoConfigurationPeter Lehto
AutoConfiguration is an amazing feature of Spring Boot allowing integrating technologies more easily. Vaadin utilises AutoConfiguration for setting up beautiful Vaadin UIs with Spring Boot Applications. This talks tells all about how Boot's AutoConfiguration works with Vaadin and what kind of benefits it provides for developers
This document provides an overview of Google Guice, an open source Java framework for dependency injection. It discusses key Guice concepts like dependency injection, bindings, providers, and scopes. It also covers advanced topics such as aspect-oriented programming with Guice, integration with other frameworks like Spring, and using Guice in servlets. The goal of Guice is to simplify dependency management and increase testability by removing hard-coded dependencies.
The document discusses the Chain of Responsibility pattern and Command pattern. It defines each pattern, provides examples of how each can be implemented in Java code, and notes related design patterns. The Chain of Responsibility pattern involves passing a request between a chain of objects until an object handles the request, decoupling the sender and receiver. The example shows approving purchase requests by role. The Command pattern encapsulates a request as an object, allowing request parameters and receivers to be changed, decoupling invocation from execution. The example uses actions to trigger window commands.
This document provides an overview of MongoDB Stitch, which is a serverless platform for building and hosting web and mobile backends. It discusses how Stitch can be used to handle user authentication and authorization, implement server-side rules, manage data access and synchronization, and define functions and triggers that run in response to events. Stitch aims to reduce the need for complex backend infrastructure by providing an integrated set of services for user management, data storage and syncing, and serverless logic.
This document introduces Google Guice, a dependency injection framework. It discusses dependency injection, benefits like separation of concerns and easier testing. It also covers disadvantages like potential maintenance issues. The document explores the Guice API including Injector, Module, Binder and different types of bindings like linked, annotated, instance and constructor bindings. It provides a simple example using traits, classes and annotations to demonstrate dependency injection with Guice. References for more information on Guice and dependency injection are also included.
Binding business data to vaadin componentsPeter Lehto
There are two main differences between setPropertyDataSource() and setContainerDataSource() for Vaadin components:
1. Data source type - setPropertyDataSource() binds the component to a single property, while setContainerDataSource() binds it to a full Container which can contain multiple items and properties.
2. Data binding - setPropertyDataSource() binds the component value to a specific property of the current item. setContainerDataSource() does not directly bind the component, it just sets the container as the available options but does not automatically select any value. The component does not know which property in the container to use as the value.
So in summary:
- setPropertyDataSource() binds a single component to a specific property
This document provides guidance on using Mockito to test a login controller class. It recommends creating a mock login integration layer and injecting it into the login controller. It then demonstrates how to write tests using Mockito to verify the login controller's behavior in different scenarios such as successful and failed logins. It also discusses using PowerMock to mock additional elements like private fields, static methods, and constructors when needed.
Policy Injection in ASP.NET using Enterprise Library 3.0PhilWinstanley
Terminology and Buzzwords
The Policy Injection Application Block
what it does, how it works
Configuring Policies
Using Attributes
Extending the Block
custom Handlers and Matching Rules
This document discusses setting up an intermediate WCF service to connect an Android application to Dynamics AX. It describes creating a WCF service that enables REST and outputs data in JSON format for consumption by the Android application. The WCF service is configured to use authentication via headers and return sample inventory item data from AX. The Android application code shows making a request to the WCF service to get JSON data and parsing it to display in a list view.
This document discusses setting up an intermediate WCF service to connect an Android application to Dynamics AX. It describes creating a WCF service that enables REST and outputs data as JSON for consumption by the Android application. The WCF service is configured to use authentication via headers and return AX data like item lists. The document also provides code samples for the WCF service interface and implementation, as well as the Android application code to call the service, parse the JSON response, and display it in a list view.
AngularJs Workshop SDP December 28th 2014Ran Wahle
This document provides an overview and agenda for a training on AngularJS. It introduces key concepts in AngularJS like modules, dependency injection, data binding with controllers and scopes, services, filters, directives, forms, and routing. Code examples are provided to demonstrate creating modules, controllers, services, binding data between the view and model, and using built-in and custom directives. The training will cover building AngularJS applications with a focus on best practices.
The document discusses Google Guice, an open source framework for dependency injection in Java. It provides an overview of dependency injection and what problem it aims to solve. The document then covers the key aspects of Google Guice, including how to define bindings between interfaces and implementations, different types of injections, and how to integrate Guice into applications and with other frameworks.
The document discusses migrating an existing authentication system at Columbia University to the Central Authentication Service (CAS). Specifically, it addresses:
1) Integrating the legacy service registry and custom attributes into CAS.
2) Adding support for the legacy "WIND" authentication protocol to CAS to allow existing clients to continue using either the legacy or CAS protocols during migration.
3) Customizing CAS login behavior and UI to match the existing system.
KNOTX.io is an event-driven, non-blocking integration framework that uses Vert.x and RxJava. It allows for highly scalable and modular integration of modern platforms. KNOTX provides features like data ingestion from CMSs and services, forms handling, prototyping with mocks, and extensibility through pluggable modules. It handles integration challenges through a transparent, reusable, and easily replaceable modern microservices-based architecture. Performance is optimized through asynchronous non-blocking code, event-driven architecture, and reactive programming with RxJava.
Techlunch - Dependency Injection with VaadinPeter Lehto
The document discusses dependency injection (DI) with programmatic configuration. It defines DI as a mechanism where dependencies between objects are not directly created but instead satisfied by a third party - a DI container. The document outlines reasons for using DI including loose coupling and inversion of control. It provides examples of DI in Java using annotations and explains concepts such as scopes, producers and programmatic configuration. It also discusses integrating DI into Vaadin applications using CDI extensions.
This document provides an overview of best practices for Android development. It discusses topics such as UI design, including layouts and styles; using the action bar for search and progress indicators; accessibility; network connections; asynchronous tasks and services; fragments and navigation patterns; geolocation and performance; dependency injection; and recommended tools and libraries. The document provides code snippets and links to the Android developer documentation for further information on these topics.
David Marques gave a presentation on Android app development to a user group in São Paulo, Brazil. He began by introducing himself and his background in mobile development. The presentation covered the core components of Android apps including activities, services, content providers, and intent receivers. Marques explained how each component works and provided code examples. He emphasized doing background work in services on separate threads to avoid blocking the main thread.
Vadym Khondar is a senior software engineer with 8 years of experience, including 2.5 years at EPAM. He leads a development team that works on web and JavaScript projects. The document discusses reactive programming, including its benefits of responsiveness, resilience, and other qualities. Examples demonstrate using streams, behaviors, and other reactive concepts to write more declarative and asynchronous code.
Java Web Programming [8/9] : JSF and AJAXIMC Institute
This document provides an overview of JavaServer Faces (JSF) and Asynchronous JavaScript and XML (AJAX). It describes JSF as a server-side user interface framework that uses components like UIForm and UIInput to build web applications. It also explains how AJAX allows for asynchronous client-server communication using XMLHttpRequest to update parts of a page without reloading. The key technologies discussed are JSF tags, configuration files, components and validators as well as the steps involved in an AJAX request like creating an XMLHttpRequest object and processing the response.
Mobile Software Engineering Crash Course - C06 WindowsPhoneMohammad Shaker
The document provides an overview of mobile software engineering for Windows Phone, discussing tools and frameworks like the Windows Phone SDK, Silverlight, MVVM, data binding, navigation, and WebClient; it also mentions game development with XNA and using touch events to control a particle engine. Code samples demonstrate common tasks like data binding, navigation, and downloading data with WebClient.
In this talk, I'm presenting an alternative approach to thinking about UI and navigation on iOS - one that is declarative and that I find easy to reason about in a big application. I did live coding and the link is on the last slide. Enjoy!
Azure Functions are great for a wide range of scenarios, including working with data on a transactional or event-driven basis. In this session, we'll look at how you can interact with Azure SQL, Cosmos DB, Event Hubs, and more so you can see how you can take a lightweight but code-first approach to building APIs, integrations, ETL, and maintenance routines.
The document provides an overview of basic Android application development concepts including getting set up with the Android SDK, creating a "Hello World" app, and exploring core application components like Activities, Services, Intents, and the AndroidManifest file. It describes setting up the development environment, building a simple app, and diving deeper into how Activities, Services, Intents, and the manifest are used to build the user interface and functionality of an Android application.
This document provides an introduction to JavaScript and its uses for web programming. It explains that JavaScript is a client-side scripting language that allows web pages to become interactive. Some key points covered include:
- JavaScript can change HTML content, styles, validate data, and make calculations.
- Functions are blocks of code that perform tasks when invoked by events or called in code.
- Events like clicks or keyboard presses trigger JavaScript code.
- The DOM (Document Object Model) represents an HTML document that JavaScript can access and modify.
- Forms and user input can be accessed and processed using the DOM.
- Programming flow can be controlled with conditional and loop statements.
-
This document provides an overview of Vaadin, an open-source web application framework that allows developers to build rich web applications using pure Java code. Key points covered include: Vaadin uses a client-server architecture with a Java backend and GWT frontend; the app lifecycle and how UI instances are managed; common patterns for structuring apps using views and navigation; building responsive layouts; server push for real-time updates; data binding between fields and data models; and how to get started with Vaadin.
Through this presentation you will gain a good understanding of how the clean architecture pattern is implemented at Taxibeat. What issues the Android Taxibeat team has faced so far and what solutions we came up with. Of course, the benefits of clean architecture will also be discussed along with the way we managed to build two fast paced iterative apps that share functionality.
In depth overview of the Flex data binding code generation. Provides info on accomplish data binding through actionscript as well as limitations of the process.
Le temps est révolu où Java EE ne serait qu’à développer des applications de mise à jour de données, avec JSF / EJB / JPA. Aujourd’hui Java EE s’est assoupli et s’est ouvert sur le monde, avec CDI comme clé de voûte et a repoussé nos limites grâce à des capacités d’extension puissantes et faciles d’utilisation comme JCA.
Dans un premier temps, nous reviendrons rapidement sur la place de CDI dans JavaEE 7 et sur ses mécanismes d’extension. Dans un deuxième temps, nous verrons les techniques de connecteurs JCA et comment ils peuvent aussi constituer une possibilité d’ouverture simple à mettre en œuvre. JCA fournit des techniques pour gérer des connexions sortantes ou entrantes, sur des formats ou protocoles variés.
This document summarizes Paco de la Cruz's presentation on Azure Durable Functions. The presentation covered the evolution of application platforms from on-premises to serverless. It then discussed Azure Functions and some challenges it faces with stateful orchestrations. Durable Functions were introduced as an extension of Azure Functions that uses a Durable Task Framework to implement stateful workflows in a serverless manner. Key patterns demonstrated include function chaining, fan-out/fan-in, and using an orchestration client to start and monitor orchestrations. Code samples and demos were provided to illustrate approval workflows using Durable Functions.
Android services allow long-running tasks to perform work in the background independently of an application's user interface. There are two main types of services: started services which can perform operations indefinitely even if the starting component is destroyed, and bound services which offer a client-server interface between a component and the service. Services must be started with startService() or bound to with bindService() and have lifecycle callback methods like onStartCommand(), onBind(), onCreate(), and onDestroy(). The IntentService class simplifies started service implementation. Bound services can expose interfaces using Binder, Messenger, or AIDL to allow inter-process communication.
Events describe actions that occur and provide information about what happened. ExtJS normalizes event handling across browsers. Classes that expose events inherit from Observable which allows subscriber objects to be notified of events.
Events describe actions that occur and provide information about what happened. ExtJS normalizes event handling across browsers. Classes that expose events inherit from Observable which allows subscriber objects to be notified of events.
Similar to Java Svet - Communication Between Android App Components (20)
In his public lecture, Christian Timmerer provides insights into the fascinating history of video streaming, starting from its humble beginnings before YouTube to the groundbreaking technologies that now dominate platforms like Netflix and ORF ON. Timmerer also presents provocative contributions of his own that have significantly influenced the industry. He concludes by looking at future challenges and invites the audience to join in a discussion.
OpenID AuthZEN Interop Read Out - AuthorizationDavid Brossard
During Identiverse 2024 and EIC 2024, members of the OpenID AuthZEN WG got together and demoed their authorization endpoints conforming to the AuthZEN API
Programming Foundation Models with DSPy - Meetup SlidesZilliz
Prompting language models is hard, while programming language models is easy. In this talk, I will discuss the state-of-the-art framework DSPy for programming foundation models with its powerful optimizers and runtime constraint system.
UiPath Test Automation using UiPath Test Suite series, part 6DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 6. In this session, we will cover Test Automation with generative AI and Open AI.
UiPath Test Automation with generative AI and Open AI webinar offers an in-depth exploration of leveraging cutting-edge technologies for test automation within the UiPath platform. Attendees will delve into the integration of generative AI, a test automation solution, with Open AI advanced natural language processing capabilities.
Throughout the session, participants will discover how this synergy empowers testers to automate repetitive tasks, enhance testing accuracy, and expedite the software testing life cycle. Topics covered include the seamless integration process, practical use cases, and the benefits of harnessing AI-driven automation for UiPath testing initiatives. By attending this webinar, testers, and automation professionals can gain valuable insights into harnessing the power of AI to optimize their test automation workflows within the UiPath ecosystem, ultimately driving efficiency and quality in software development processes.
What will you get from this session?
1. Insights into integrating generative AI.
2. Understanding how this integration enhances test automation within the UiPath platform
3. Practical demonstrations
4. Exploration of real-world use cases illustrating the benefits of AI-driven test automation for UiPath
Topics covered:
What is generative AI
Test Automation with generative AI and Open AI.
UiPath integration with generative AI
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc
How does your privacy program stack up against your peers? What challenges are privacy teams tackling and prioritizing in 2024?
In the fifth annual Global Privacy Benchmarks Survey, we asked over 1,800 global privacy professionals and business executives to share their perspectives on the current state of privacy inside and outside of their organizations. This year’s report focused on emerging areas of importance for privacy and compliance professionals, including considerations and implications of Artificial Intelligence (AI) technologies, building brand trust, and different approaches for achieving higher privacy competence scores.
See how organizational priorities and strategic approaches to data security and privacy are evolving around the globe.
This webinar will review:
- The top 10 privacy insights from the fifth annual Global Privacy Benchmarks Survey
- The top challenges for privacy leaders, practitioners, and organizations in 2024
- Key themes to consider in developing and maintaining your privacy program
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceIndexBug
Imagine a world where machines not only perform tasks but also learn, adapt, and make decisions. This is the promise of Artificial Intelligence (AI), a technology that's not just enhancing our lives but revolutionizing entire industries.
Best 20 SEO Techniques To Improve Website Visibility In SERPPixlogix Infotech
Boost your website's visibility with proven SEO techniques! Our latest blog dives into essential strategies to enhance your online presence, increase traffic, and rank higher on search engines. From keyword optimization to quality content creation, learn how to make your site stand out in the crowded digital landscape. Discover actionable tips and expert insights to elevate your SEO game.
Climate Impact of Software Testing at Nordic Testing DaysKari Kakkonen
My slides at Nordic Testing Days 6.6.2024
Climate impact / sustainability of software testing discussed on the talk. ICT and testing must carry their part of global responsibility to help with the climat warming. We can minimize the carbon footprint but we can also have a carbon handprint, a positive impact on the climate. Quality characteristics can be added with sustainability, and then measured continuously. Test environments can be used less, and in smaller scale and on demand. Test techniques can be used in optimizing or minimizing number of tests. Test automation can be used to speed up testing.
Have you ever been confused by the myriad of choices offered by AWS for hosting a website or an API?
Lambda, Elastic Beanstalk, Lightsail, Amplify, S3 (and more!) can each host websites + APIs. But which one should we choose?
Which one is cheapest? Which one is fastest? Which one will scale to meet our needs?
Join me in this session as we dive into each AWS hosting service to determine which one is best for your scenario and explain why!
Infrastructure Challenges in Scaling RAG with Custom AI modelsZilliz
Building Retrieval-Augmented Generation (RAG) systems with open-source and custom AI models is a complex task. This talk explores the challenges in productionizing RAG systems, including retrieval performance, response synthesis, and evaluation. We’ll discuss how to leverage open-source models like text embeddings, language models, and custom fine-tuned models to enhance RAG performance. Additionally, we’ll cover how BentoML can help orchestrate and scale these AI components efficiently, ensuring seamless deployment and management of RAG systems in the cloud.
Ivanti’s Patch Tuesday breakdown goes beyond patching your applications and brings you the intelligence and guidance needed to prioritize where to focus your attention first. Catch early analysis on our Ivanti blog, then join industry expert Chris Goettl for the Patch Tuesday Webinar Event. There we’ll do a deep dive into each of the bulletins and give guidance on the risks associated with the newly-identified vulnerabilities.
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.
Monitoring and Managing Anomaly Detection on OpenShift.pdfTosin Akinosho
Monitoring and Managing Anomaly Detection on OpenShift
Overview
Dive into the world of anomaly detection on edge devices with our comprehensive hands-on tutorial. This SlideShare presentation will guide you through the entire process, from data collection and model training to edge deployment and real-time monitoring. Perfect for those looking to implement robust anomaly detection systems on resource-constrained IoT/edge devices.
Key Topics Covered
1. Introduction to Anomaly Detection
- Understand the fundamentals of anomaly detection and its importance in identifying unusual behavior or failures in systems.
2. Understanding Edge (IoT)
- Learn about edge computing and IoT, and how they enable real-time data processing and decision-making at the source.
3. What is ArgoCD?
- Discover ArgoCD, a declarative, GitOps continuous delivery tool for Kubernetes, and its role in deploying applications on edge devices.
4. Deployment Using ArgoCD for Edge Devices
- Step-by-step guide on deploying anomaly detection models on edge devices using ArgoCD.
5. Introduction to Apache Kafka and S3
- Explore Apache Kafka for real-time data streaming and Amazon S3 for scalable storage solutions.
6. Viewing Kafka Messages in the Data Lake
- Learn how to view and analyze Kafka messages stored in a data lake for better insights.
7. What is Prometheus?
- Get to know Prometheus, an open-source monitoring and alerting toolkit, and its application in monitoring edge devices.
8. Monitoring Application Metrics with Prometheus
- Detailed instructions on setting up Prometheus to monitor the performance and health of your anomaly detection system.
9. What is Camel K?
- Introduction to Camel K, a lightweight integration framework built on Apache Camel, designed for Kubernetes.
10. Configuring Camel K Integrations for Data Pipelines
- Learn how to configure Camel K for seamless data pipeline integrations in your anomaly detection workflow.
11. What is a Jupyter Notebook?
- Overview of Jupyter Notebooks, an open-source web application for creating and sharing documents with live code, equations, visualizations, and narrative text.
12. Jupyter Notebooks with Code Examples
- Hands-on examples and code snippets in Jupyter Notebooks to help you implement and test anomaly detection models.
Essentials of Automations: The Art of Triggers and Actions in FMESafe Software
In this second installment of our Essentials of Automations webinar series, we’ll explore the landscape of triggers and actions, guiding you through the nuances of authoring and adapting workspaces for seamless automations. Gain an understanding of the full spectrum of triggers and actions available in FME, empowering you to enhance your workspaces for efficient automation.
We’ll kick things off by showcasing the most commonly used event-based triggers, introducing you to various automation workflows like manual triggers, schedules, directory watchers, and more. Plus, see how these elements play out in real scenarios.
Whether you’re tweaking your current setup or building from the ground up, this session will arm you with the tools and insights needed to transform your FME usage into a powerhouse of productivity. Join us to discover effective strategies that simplify complex processes, enhancing your productivity and transforming your data management practices with FME. Let’s turn complexity into clarity and make your workspaces work wonders!
Taking AI to the Next Level in Manufacturing.pdfssuserfac0301
Read Taking AI to the Next Level in Manufacturing to gain insights on AI adoption in the manufacturing industry, such as:
1. How quickly AI is being implemented in manufacturing.
2. Which barriers stand in the way of AI adoption.
3. How data quality and governance form the backbone of AI.
4. Organizational processes and structures that may inhibit effective AI adoption.
6. Ideas and approaches to help build your organization's AI strategy.
Things to Consider When Choosing a Website Developer for your Website | FODUUFODUU
Choosing the right website developer is crucial for your business. This article covers essential factors to consider, including experience, portfolio, technical skills, communication, pricing, reputation & reviews, cost and budget considerations and post-launch support. Make an informed decision to ensure your website meets your business goals.
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Speck&Tech
ABSTRACT: A prima vista, un mattoncino Lego e la backdoor XZ potrebbero avere in comune il fatto di essere entrambi blocchi di costruzione, o dipendenze di progetti creativi e software. La realtà è che un mattoncino Lego e il caso della backdoor XZ hanno molto di più di tutto ciò in comune.
Partecipate alla presentazione per immergervi in una storia di interoperabilità, standard e formati aperti, per poi discutere del ruolo importante che i contributori hanno in una comunità open source sostenibile.
BIO: Sostenitrice del software libero e dei formati standard e aperti. È stata un membro attivo dei progetti Fedora e openSUSE e ha co-fondato l'Associazione LibreItalia dove è stata coinvolta in diversi eventi, migrazioni e formazione relativi a LibreOffice. In precedenza ha lavorato a migrazioni e corsi di formazione su LibreOffice per diverse amministrazioni pubbliche e privati. Da gennaio 2020 lavora in SUSE come Software Release Engineer per Uyuni e SUSE Manager e quando non segue la sua passione per i computer e per Geeko coltiva la sua curiosità per l'astronomia (da cui deriva il suo nickname deneb_alpha).
7. public class ContactsList extends ListFragment {
/** Key to find the data uri in a bundle. */
private static String ARG_DATA_URI = "ArgDataUri";
private Uri mDataUri;
public ContactsList() {
// Do NOT use constructors
}
public static ContactsList newInstance(Uri uri) {
Bundle args = new Bundle();
args.putParcelable(ARG_DATA_URI, uri);
ContactsList fragment = new ContactsList();
fragment.setArgments(args);
return fragment;
}
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mDataUri = getArguments().getParcelable(ARG_DATA_URI);
}
}
Fragments creation
9. public class ContactsList extends ListFragment
implements AdapterView.OnItemClickListener {
// Container Activity must implement this interface
public interface OnContactsActionListener {
void onViewContactAction(Uri contactUri);
}
private OnContactsActionListener mCallback;
@Override
public void onAttach(Activity activity) {
super.onAttach(context);
try {
mCallback = (OnContactsActionListener) activity;
} catch (ClassCastException e) {
throw new ClassCastException(activity.toString()
+ " must implement OnContactsActionListener");
}
}
}
Communication with activities
10. public class ContactsActivity extends FragmentActivity
implements OnContactsActionListener {
:::
@Override
public void onViewContactAction(Uri contactUri) {
ContactDetail contactDetailFragment = (ContactDetail)
getFragmentManager().findFragmentById(R.id.contact_detail);
if (contactDetailFragment != null) {
// If contact detail is available we are in two-pane layout
// Update contact detail’s data
contactDetailsFragment.loadData(contactUri);
} else {
// Otherwise we are in one-pane layout
// Start activity to view the contact
startActivity(new Intent(Intent.ACTION_VIEW, contactUri));
}
}
}
Communication with activities
13. public class BackupAccountDialog extends DialogFragment {
public interface OnAccountSelectedListener {
void onAccountSelected(Account account);
}
public OnAccountSelectedListener mCallback;
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
if (getTargetFragment() instanceof OnAccountSelectedListener) {
mCallback = (OnAccountSelectedListener) getTargetFragment();
} else if (getParentFragment() instanceof OnAccountSelectedListener) {
mCallback = (OnAccountSelectedListener) getParentFragment();
} else {
if (activity instanceof OnAccountSelectedListener) {
mCallback = (OnAccountSelectedListener) activity;
} else {
throw new RuntimeExcpetion("What now?");
}
}
}
}
Communication with fragments
14. public class ContactsList extends Fragment
implements OnAccountSelectedListener {
:::
private void showSelectBackupAccount() {
BackupAccountDialog dialog = BackupAccountDialog.newInstance();
dialog.setTargetFragment(this, 0);
dialog.show(getFragmentManager(), "selectBackupAccountDialog");
}
@Override
public void onAccountSelected(Account account) {
// Do something when account is selected
}
}
Communication with fragments
15. How to be smooth?
Offload long-running operations
from Main UI thread.
17. Main Thread
• In charge of dispatching events (incl. drawing events)
to user interface widgets.
18. Main Thread
• In charge of dispatching events (incl. drawing events)
to user interface widgets.
• All components that run in the same process are
instantiated in the Main (UI) thread.
19. Main Thread
• In charge of dispatching events (incl. drawing events)
to user interface widgets.
• All components that run in the same process are
instantiated in the Main (UI) thread.
• Android UI toolkit (components from the android.widget
and android.view packages) is not thread-safe.
20. Main Thread Rules
Do not block the Main thread.
Do not access the Android toolkit
from outside the Main thread.
24. What is an Async Task?
• Designed to be helper class around Thread and Handler.
25. What is an Async Task?
• Designed to be helper class around Thread and Handler.
• Ideally to be used for short operations (a few seconds at
the most).
26. What is an Async Task?
• Designed to be helper class around Thread and Handler.
• Ideally to be used for short operations (a few seconds at
the most).
• Defined by 3 generic types: Params, Progress and
Result and 4 steps: onPreExecute, doInBackground,
onProgressUpdate and onPostExecute.
31. Why Service?
• A service can run in the background to perform work
even while the user is in a different application.
32. Why Service?
• A service can run in the background to perform work
even while the user is in a different application.
• A service can allow other components to bind to it, in
order to interact with it and perform interprocess
communication.
38. What is a Result Receiver?
• Generic interface for receiving a callback result from
someone.
39. public class ContactEditorActivity extends FragmentActivity {
:::
private void saveContact() {
Intent saveAction = ContactSaveService.createSaveContactIntent(
getActivity(), mOnSaveContactCallback, …);
startService(saveAction);
}
ResultReceiver mOnSaveContactCallback = new ResultReceiver(mHandler) {
@Override
protected void onReceiveResult(int resultCode, Bundle resultData) {
// Do something when contact is saved.
// On a thread associated with given mHandler.
}
};
:::
}
Result Receiver – Client side
40. public class ContactSaveService extends IntentService {
private static final String EXTRA_CALLBACK = "extraCallback";
public static Intent createSaveContactIntent(Context context,
ResultReceiver resultReceiver, …) {
Intent serviceIntent = new Intent(context, ContactSaveService.class);
serviceIntent.putExtra(EXTRA_CALLBACK, resultReceiver);
serviceIntent.putExtra(…, …);
return serviceIntent;
}
private void doSaveContact(Intent intent) {
:::
int resultCode = 0;
Bundle resultData = new Bundle(); // Result for the listener
ResultReceiver callback = intent.getParcelable(EXTRA_CALLBACK);
callback.send(resultCode, resultData);
}
}
Result Receiver – Service side
41. What is a Broadcast Receiver?
sendBroadcast() onReceive()
43. Local Broadcast Manager
• Helper to register for and send broadcasts of Intents to
local objects within your process.
44. Local Broadcast Manager
• Helper to register for and send broadcasts of Intents to
local objects within your process.
Private Secure
Efficient
45. Broadcast Receiver – Client side
public class ContactEditorActivity extends FragmentActivity {
protected void onCreate(Bundle savedInstanceState) {
LocalBroadcastManager mLocalBroadcastManager =
LocalBroadcastManager.getInstance(this);
IntentFilter mContactSavedIntentFilter =
new IntentFilter(Constants.BROADCAST_CONTACT_SAVED);
mLocalBrodcastManager.registerReceiver(
mContactSavedReceiver, mContactSavedIntentFilter);
}
protected void onDestroy() {
mLocalBrodcastManager.unregisterReceiver(mContactSavedReceiver);
}
BroadcastReceiver mContactSavedReciver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
// Do something when contact is saved.
}
};
}
46. Broadcast Receiver – Service side
public class ContactSaveService extends IntentService {
public static Intent createSaveContactIntent(Context context, …) {
Intent serviceIntent = new Intent(context, ContactSaveService.class);
serviceIntent.putExtra(…, …);
return serviceIntent;
}
private void doSaveContact(Intent intent) {
:::
Intent localIntent = new Intent(Constants.BROADCAST_CONTACT_SAVED);
localIntent.putExtra(…, …);
// Broadcasts the Intent to receivers in this app.
LocalBroadcastManager.getInstance(this).sendBroadcast(localIntent);
}
}
47. How to be up to date?
Loaders are your friends when
performing asynchronous
loading of data.
51. Why Loaders?
• They are available to every Activity and Fragment.
• They provide asynchronous loading of data.
52. Why Loaders?
• They are available to every Activity and Fragment.
• They provide asynchronous loading of data.
• They monitor the source of their data and deliver new
results when the content changes.
53. Why Loaders?
• They are available to every Activity and Fragment.
• They provide asynchronous loading of data.
• They monitor the source of their data and deliver new
results when the content changes.
• They automatically reconnect to the last loader's cursor
when being recreated after a configuration change.
Thus, they don't need to re-query their data.
54. Using Cursor Loader
public class ContactsList extends ListFragment implements
LoaderManager.LoaderCallbacks<Cursor> {
:::
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
// Initializes the loader. It will use the existing one or
// create and start a new one.
getLoaderManager().initLoader(ID, null /*bundle*/, this /*callbacks*/);
}
private void setDataUri(Uri dataUri) {
mDataUri = dataUri; // Assuming they are not equal
getLoaderManager().restartLoader(ID, null, this);
}
:::
55. Using Cursor Loader
:::
@Override
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
return new CursorLoader(getActivity(), mDataUri, CONTACTS_PROJECITON,
null /*selection*/, null /*selArgs*/, Contacts.DISPLAY_NAME);
}
@Override
public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
// Swap the new cursor in. The framework will close the old cursor.
mAdapter.swapCursor(data);
}
@Override
public void onLoaderReset(Loader<Cursor> loader) {
// Last cursor is about to be closed. We have to stop using it.
mAdapter.swapCursor(null);
}
}
56. • Volite Javu?
• Fokusirani ste na visok kvalitet
koda i optimizaciju performansi?
• Zainteresovani ste za prelazak
na Mobile razvoj?
bit.ly/Java2AndroidJava2Android