Advantages of Vue JS - Presented at the Rangle.io VueJS Meetup in January Evan Schultz
Vue JS is a framework that is getting a lot of attention from developers. With Angular and React being as well established as they are, where does Vue fit in?
This talk tries to go over some of the advantages of Vue, and why it can be a good fit for many teams, and can offer a number of advantages to get projects rolling quickly.
Creating 'Vuetiful' Data-Driven User InterfacesEvan Schultz
This document provides an overview and introduction to creating data-driven user interfaces with Vue components. It discusses what a data-driven dynamic UI is and when it would be needed. It then covers the basics of using the <component> tag to dynamically load components based on a prop, data property, or computed property. It discusses how props and events can be used with dynamic components, including how unknown props are handled. Finally, it demonstrates how to build dynamic forms using a JSON schema and dynamically loading form components based on field types, including handling data binding and updating form data.
Quick introduction into react and flux followed by a comparison of redux and alt flux frameworks and a simple hello world application implemented in each of them. Last two slides present a microservices approach to client side applications as one of approaches how to make transitions between frameworks easier.
Learning React: Facebook's Javascript Library For Building User InterfacesKen Wheeler
This document provides an overview of React, Facebook's JavaScript library for building user interfaces. It discusses key aspects of React including components, props, state, lifecycle methods, and the Flux architecture. React uses a virtual DOM for performance and unidirectional data flow. Components are reusable UI elements that can be composed to build up an interface. The Flux architecture uses a dispatcher to enforce unidirectional data flow from actions to stores to views.
This document discusses React components and their anatomy. It shows how a basic ActionButton component is defined and rendered, then how multiple ActionButton components are used in a Counter component to increment and decrement a count. It explains that React uses components instead of templates for separation of concerns. It also discusses how React re-renders on every state change rather than using two-way data binding, and how the virtual DOM enables efficient re-renders.
AngularJS is a JavaScript framework that allows developers to create single-page applications. It provides features like two-way data binding, dependency injection, templating, directives and services. The document defines AngularJS, describes its key features and provides examples of how to use controllers, scopes, expressions, services, factories, directives and more to build Angular applications. It also includes exercises for readers to practice creating an Angular movie app that displays now playing movies, actors and allows loading more movies.
FITC events. For digital creators.
Save 10% off ANY FITC event with discount code 'slideshare'
See our upcoming events at www.fitc.ca
A Journey with React
with Tasveer Singh
OVERVIEW
React has been receiving a lot of buzz lately but does it live up to it? Taz was curious about this exact question and decided to embark on a journey to find out more. Since then he has fallen in love with React, its simple paradigm, and what it has enabled him to do. From modelling large front-end applications with Flux and WebPack code splitting to search engine optimized isomorphic rendering, he really has explored React from one end to the other and will share his experience and insights with you along with tips and tricks along the way.
OBJECTIVE
To provide the audience with enough information to understand how React is different and to explore further.
TARGET AUDIENCE
Intermediate to Advanced JavaScript developers.
ASSUMED AUDIENCE KNOWLEDGE
Basic knowledge of client side JavaScript frameworks, JavaScript modules, ES6, asset management, SEO, and isomorphic JavaScript.
FIVE THINGS AUDIENCE MEMBERS WILL LEARN
What is React
How React is different
Pros and Cons of a Flux architecture
Pros and Cons of WebPack
Pros and Cons of Isomorphic JavaScript
This document provides an overview of React and Redux. It discusses React as a JavaScript library for building user interfaces using components. It describes how React uses a virtual DOM to render components efficiently. It also discusses Redux as a state management pattern inspired by Flux that uses a single state tree and pure reducer functions to update the state in response to actions. The document outlines the basic Redux workflow of dispatching actions, passing them to reducer functions to compute a new state, and passing the new state back to the views to update.
This document provides an introduction to AngularJS presented by Dmitry Ivashutin. It discusses key concepts like AngularJS being a framework rather than a library, its use of MVC/MVVM patterns, and features like directives, controllers, scopes and dependency injection. Specific directives and recipes for services, factories and providers are demonstrated. The document aims to explain core AngularJS concepts for developers new to the framework.
This document provides an overview of jQuery, a JavaScript library for DOM manipulation. It discusses jQuery's CSS selector syntax, methods for manipulating DOM elements and collections, event handling, AJAX support through methods like load() and get(), and how jQuery is extensible through plugins. The document also provides examples of DOM traversal, value retrieval, event binding, and chaining methods.
Angular Performance: Then, Now and the Future. Todd MottoFuture Insights
This document summarizes AngularJS performance features discussed by Todd Motto, a Google Developer Expert and lead engineer at Mozio. The summary includes:
1. Angular 1.2 to 1.3 brought major performance improvements like IE8 support being dropped, DOM manipulation being 4.3 times faster, and the $digest loop being 3.5 times faster.
2. New features in 1.3 like one-time bindings, ngModelOptions, and bindToController help optimize performance.
3. Todd Motto discusses techniques for improving Angular performance like minimizing $watches, using $applyAsync with $http, disabling debug info, and avoiding expensive DOM filters.
4. The
Polymer - pleasant client-side programming with web componentspsstoev
Polymer is a new library for the web, built on top of Web Components. This new project from Google makes client-side programming with web components easy and pleasant. You can use these technologies to increase the expressiveness of HTML by creating new tags that can help you get straight to your task. Polymer also adds other instruments like two-way data-binding and a lot of shortcuts that make your code more declarative and easier to extend and maintain. Many people think that web components are the future of web programming, and Polymer allows you to harness that power right now. Already excited!?
Zepto.js, a jQuery-compatible mobile JavaScript framework in 2KThomas Fuchs
The document discusses the goals and design of Zepto.js, a JavaScript framework for mobile web applications. It aims to have a very small codebase that is easy to use, extends native browser APIs, and avoids non-essential browser implementations. It provides a jQuery-like API but takes advantage of mobile features for better performance on small screens and devices with limited bandwidth.
The document describes React, a JavaScript library for building user interfaces. It introduces some key concepts of React including components, props, state, and the virtual DOM. Components are the building blocks of React apps and can be composed together. Props provide immutable data to components, while state provides mutable data. The virtual DOM allows React to efficiently update the real DOM by only changing what needs to be changed. Data flows unidirectionally in React from parent to child components via props, and state updates within a component are handled via setState().
Switch to React.js from AngularJS developerEugene Zharkov
This document provides an overview of switching from AngularJS to React.js development. It discusses key differences in component creation, initialization, handling events, using arrow functions, destructuring and spread attributes, build tools, routing, and working with data. Examples are given for creating React components, using JSX, handling props, and integrating with libraries like Material UI. The benefits of React's simpler component model compared to Angular's directives and controllers are highlighted.
The document discusses JavaScript promises and how they can be used to handle asynchronous operations. Promises allow asynchronous functions to return values asynchronously by attaching callbacks to the promise object. This avoids callback hell and makes asynchronous code easier to read and maintain. The document covers how promises can be chained together, executed in parallel, cached, and passed around between functions. It also discusses promise implementations in different frameworks like jQuery, Angular, and how promises can interact across frameworks.
The document discusses using PHPUnit for testing PHP code. It provides advantages of unit testing like catching bugs early and promoting code quality. It describes different types of tests like browser tests using Selenium and software tests checking PHP variables. It outlines the anatomy of test classes and functions, showing how to set up tests, target elements, make assertions. It also discusses how testing will work for the Baker project and Gearbox software, with shared testing resources and triggering tests through the admin center or continuous integration.
Promise patterns provide an asynchronous programming model for JavaScript using promises. Promises allow separating business logic from asynchronous API providers by defining a standard asynchronous API. Common patterns are callbacks, events, and promises. Promises improve on callbacks and events by allowing parallel asynchronous operations, error handling, and progress tracking in a standardized way.
REACT.JS : Rethinking UI Development Using JavaScriptDeepu S Nath
Isn't React that clear? Don't you fully understand how/why you should use it on your apps and why it gained all this attention? Do you want to learn the basics and to understand why it's so powerful?
This coffee@DBG will explore how this library works and you will discover and understand its main concepts in details. At the end of this session you'll learn main concepts like Components, Virtual DOM, One-way data binding etc.
Components
JSX
Data for component
The component lifecycle
Component Methods
Component Breakdown
When developing applications we have a hard time managing application state, and that is okay because managing application state is hard. We will try to make it easier using Redux.
Redux is predictable state management container for JavaScript applications that helps us manage our state while also making our state mutations predictable.
Through the presentation and code, I will show you how I solved my state problem with Redux in React application.
jQuery is a JavaScript library that simplifies HTML document traversal, event handling, animating, and Ajax interactions. It allows you to write less code that does more. jQuery selects DOM elements using CSS-style selectors and provides methods for traversing, manipulating, and animating elements. Some key benefits of jQuery include writing concise code, cross-browser compatibility, and a large ecosystem of plugins.
jQuery is a popular JavaScript library that makes HTML document traversal and manipulation, event handling, animation, and Ajax interactions more simple. It works across browsers and allows developers to write less code using its easy-to-use API. The document discusses how jQuery works, including how to launch code on document ready, add and remove HTML classes, and use callbacks and functions when passing arguments to other functions.
This document provides an introduction and overview of ReactJS concepts including components, JSX, props, state, lifecycle methods and the virtual DOM. It compares ReactJS to AngularJS, noting ReactJS uses a non-MVC architecture and focuses on just the view layer while AngularJS follows MVC. Later sections discuss additional ReactJS topics like Flux, Redux, Webpack and RamdaJS.
On May 14, 2015, Jeff Winkler gave a talk at Harvard University's Lamont Library titled "Intro to ReactJS."
Description
Created by Facebook and Instagram, React has recently been embraced by companies and organizations including Airbnb, Khan Academy, Reddit, the BBC, and Code Academy. This presentation will be especially interesting for those using or planning to use javascript libraries such as angularJS, backbone.js, ember.js, and others.
For this talk, Jeff Winkler will present:
- An introduction to React, mixed with demos.
- An examination of how React implements Computer Science principles from Functional and Object-Oriented. The discussion will consider the impact on maintainable large-scale systems.
Biography
Jeff Winkler, is a professional developer* in the Boston area and organizer of the Boston ReactJS Meetup. In addition to the ReactJS Boston Meetup, Jeff works with React professionally at TapJoy and runs http://react.rocks.
(* Full-stack guy. ReactJS, Rails, TDD. Best OODA loop wins)
The document discusses Step Objects, which are presented as an alternative to Page Objects and as a way to structure behavioral tests. Step Objects sit between Page Objects and behavior/test definitions. They are introduced as a layer that allows defining steps to act and verify without being tied to specific pages. The rest of the document covers example step definitions, using generic steps, handling data passing between steps, and principles for step organization.
Good karma: UX Patterns and Unit Testing in Angular with KarmaExoLeaders.com
The document discusses unit testing in Angular with Karma. It provides examples of UX patterns in Angular like binding elements to variables, lists, and click handlers. It also covers what controllers and scopes are and examples of testing components in Angular like services, factories, and UI elements. Hands-on examples are provided for setting up a test environment and writing tests.
The document provides an overview and code snippets for an Eagles 2011 NFL Draft mobile app created with Sencha Touch. It discusses challenges faced like learning Sencha Touch, displaying live updates, and adapting images for different screen sizes. Lessons learned include destroying DOM elements when done, establishing post-launch content parameters, and using background-size for images. The document also discusses tooling, dependencies, and best practices for mobile development.
This document provides an overview of React and Redux. It discusses React as a JavaScript library for building user interfaces using components. It describes how React uses a virtual DOM to render components efficiently. It also discusses Redux as a state management pattern inspired by Flux that uses a single state tree and pure reducer functions to update the state in response to actions. The document outlines the basic Redux workflow of dispatching actions, passing them to reducer functions to compute a new state, and passing the new state back to the views to update.
This document provides an introduction to AngularJS presented by Dmitry Ivashutin. It discusses key concepts like AngularJS being a framework rather than a library, its use of MVC/MVVM patterns, and features like directives, controllers, scopes and dependency injection. Specific directives and recipes for services, factories and providers are demonstrated. The document aims to explain core AngularJS concepts for developers new to the framework.
This document provides an overview of jQuery, a JavaScript library for DOM manipulation. It discusses jQuery's CSS selector syntax, methods for manipulating DOM elements and collections, event handling, AJAX support through methods like load() and get(), and how jQuery is extensible through plugins. The document also provides examples of DOM traversal, value retrieval, event binding, and chaining methods.
Angular Performance: Then, Now and the Future. Todd MottoFuture Insights
This document summarizes AngularJS performance features discussed by Todd Motto, a Google Developer Expert and lead engineer at Mozio. The summary includes:
1. Angular 1.2 to 1.3 brought major performance improvements like IE8 support being dropped, DOM manipulation being 4.3 times faster, and the $digest loop being 3.5 times faster.
2. New features in 1.3 like one-time bindings, ngModelOptions, and bindToController help optimize performance.
3. Todd Motto discusses techniques for improving Angular performance like minimizing $watches, using $applyAsync with $http, disabling debug info, and avoiding expensive DOM filters.
4. The
Polymer - pleasant client-side programming with web componentspsstoev
Polymer is a new library for the web, built on top of Web Components. This new project from Google makes client-side programming with web components easy and pleasant. You can use these technologies to increase the expressiveness of HTML by creating new tags that can help you get straight to your task. Polymer also adds other instruments like two-way data-binding and a lot of shortcuts that make your code more declarative and easier to extend and maintain. Many people think that web components are the future of web programming, and Polymer allows you to harness that power right now. Already excited!?
Zepto.js, a jQuery-compatible mobile JavaScript framework in 2KThomas Fuchs
The document discusses the goals and design of Zepto.js, a JavaScript framework for mobile web applications. It aims to have a very small codebase that is easy to use, extends native browser APIs, and avoids non-essential browser implementations. It provides a jQuery-like API but takes advantage of mobile features for better performance on small screens and devices with limited bandwidth.
The document describes React, a JavaScript library for building user interfaces. It introduces some key concepts of React including components, props, state, and the virtual DOM. Components are the building blocks of React apps and can be composed together. Props provide immutable data to components, while state provides mutable data. The virtual DOM allows React to efficiently update the real DOM by only changing what needs to be changed. Data flows unidirectionally in React from parent to child components via props, and state updates within a component are handled via setState().
Switch to React.js from AngularJS developerEugene Zharkov
This document provides an overview of switching from AngularJS to React.js development. It discusses key differences in component creation, initialization, handling events, using arrow functions, destructuring and spread attributes, build tools, routing, and working with data. Examples are given for creating React components, using JSX, handling props, and integrating with libraries like Material UI. The benefits of React's simpler component model compared to Angular's directives and controllers are highlighted.
The document discusses JavaScript promises and how they can be used to handle asynchronous operations. Promises allow asynchronous functions to return values asynchronously by attaching callbacks to the promise object. This avoids callback hell and makes asynchronous code easier to read and maintain. The document covers how promises can be chained together, executed in parallel, cached, and passed around between functions. It also discusses promise implementations in different frameworks like jQuery, Angular, and how promises can interact across frameworks.
The document discusses using PHPUnit for testing PHP code. It provides advantages of unit testing like catching bugs early and promoting code quality. It describes different types of tests like browser tests using Selenium and software tests checking PHP variables. It outlines the anatomy of test classes and functions, showing how to set up tests, target elements, make assertions. It also discusses how testing will work for the Baker project and Gearbox software, with shared testing resources and triggering tests through the admin center or continuous integration.
Promise patterns provide an asynchronous programming model for JavaScript using promises. Promises allow separating business logic from asynchronous API providers by defining a standard asynchronous API. Common patterns are callbacks, events, and promises. Promises improve on callbacks and events by allowing parallel asynchronous operations, error handling, and progress tracking in a standardized way.
REACT.JS : Rethinking UI Development Using JavaScriptDeepu S Nath
Isn't React that clear? Don't you fully understand how/why you should use it on your apps and why it gained all this attention? Do you want to learn the basics and to understand why it's so powerful?
This coffee@DBG will explore how this library works and you will discover and understand its main concepts in details. At the end of this session you'll learn main concepts like Components, Virtual DOM, One-way data binding etc.
Components
JSX
Data for component
The component lifecycle
Component Methods
Component Breakdown
When developing applications we have a hard time managing application state, and that is okay because managing application state is hard. We will try to make it easier using Redux.
Redux is predictable state management container for JavaScript applications that helps us manage our state while also making our state mutations predictable.
Through the presentation and code, I will show you how I solved my state problem with Redux in React application.
jQuery is a JavaScript library that simplifies HTML document traversal, event handling, animating, and Ajax interactions. It allows you to write less code that does more. jQuery selects DOM elements using CSS-style selectors and provides methods for traversing, manipulating, and animating elements. Some key benefits of jQuery include writing concise code, cross-browser compatibility, and a large ecosystem of plugins.
jQuery is a popular JavaScript library that makes HTML document traversal and manipulation, event handling, animation, and Ajax interactions more simple. It works across browsers and allows developers to write less code using its easy-to-use API. The document discusses how jQuery works, including how to launch code on document ready, add and remove HTML classes, and use callbacks and functions when passing arguments to other functions.
This document provides an introduction and overview of ReactJS concepts including components, JSX, props, state, lifecycle methods and the virtual DOM. It compares ReactJS to AngularJS, noting ReactJS uses a non-MVC architecture and focuses on just the view layer while AngularJS follows MVC. Later sections discuss additional ReactJS topics like Flux, Redux, Webpack and RamdaJS.
On May 14, 2015, Jeff Winkler gave a talk at Harvard University's Lamont Library titled "Intro to ReactJS."
Description
Created by Facebook and Instagram, React has recently been embraced by companies and organizations including Airbnb, Khan Academy, Reddit, the BBC, and Code Academy. This presentation will be especially interesting for those using or planning to use javascript libraries such as angularJS, backbone.js, ember.js, and others.
For this talk, Jeff Winkler will present:
- An introduction to React, mixed with demos.
- An examination of how React implements Computer Science principles from Functional and Object-Oriented. The discussion will consider the impact on maintainable large-scale systems.
Biography
Jeff Winkler, is a professional developer* in the Boston area and organizer of the Boston ReactJS Meetup. In addition to the ReactJS Boston Meetup, Jeff works with React professionally at TapJoy and runs http://react.rocks.
(* Full-stack guy. ReactJS, Rails, TDD. Best OODA loop wins)
The document discusses Step Objects, which are presented as an alternative to Page Objects and as a way to structure behavioral tests. Step Objects sit between Page Objects and behavior/test definitions. They are introduced as a layer that allows defining steps to act and verify without being tied to specific pages. The rest of the document covers example step definitions, using generic steps, handling data passing between steps, and principles for step organization.
Good karma: UX Patterns and Unit Testing in Angular with KarmaExoLeaders.com
The document discusses unit testing in Angular with Karma. It provides examples of UX patterns in Angular like binding elements to variables, lists, and click handlers. It also covers what controllers and scopes are and examples of testing components in Angular like services, factories, and UI elements. Hands-on examples are provided for setting up a test environment and writing tests.
The document provides an overview and code snippets for an Eagles 2011 NFL Draft mobile app created with Sencha Touch. It discusses challenges faced like learning Sencha Touch, displaying live updates, and adapting images for different screen sizes. Lessons learned include destroying DOM elements when done, establishing post-launch content parameters, and using background-size for images. The document also discusses tooling, dependencies, and best practices for mobile development.
Presentation about the native browser way for building web components. We look at examples and the pros and cons of doing it natively and using a library. At the end we look at the Angular way of wrapping custom components into Custom Elements.
The document discusses techniques for writing clean JavaScript code. It provides examples of code smells and improvements to address issues like attaching events from the outside, separating selection from logic, shallow scope, overwriting default behavior, and separating logic from views. The document advocates for practices like modularizing functions, separating DOM manipulation from models, and creating model objects to represent DOM elements rather than directly manipulating the DOM. It encourages learning clean JavaScript techniques to write better structured and more maintainable code.
You must’ve heard of Unit testing… If not, then this talk is definitely for you! If you do know Unit testing, you probably ran at some point into a hurdle: “Where do I start?” And despite your best efforts, you end up not having enough tests for your application – Then that change request comes in, requiring you to change that very same complex piece of code for which you are lacking tests! How do you going refactor while maintaining all those ‘undocumented’ business rules? This talk will show how Codeception can be leveraged to refactor the visuals aspects of an application, maintaining backwards compatibility on API changes and even assist in moving to a whole different server infrastructure.
Javascript unit testing, yes we can e bigAndy Peterson
This document discusses test-driven development for JavaScript using ScrewUnit and BlueRidge. It introduces the Carbon Five consulting firm and covers why JavaScript unit testing is important. It then demonstrates how to write behavioral tests using ScrewUnit's BDD style and shows a live example testing a wizard component. Some challenges of JavaScript testing like DOM cleanup and structure are addressed. The document emphasizes that JavaScript testing is possible and can be integrated into the development process.
Improving android experience for both users and developersPavel Lahoda
Android UI and User Experience has changed dramatically in the recent version(s) and while users generally enjoy the new features, there are still several areas that are left to application-level-DIY-patterns. For developers, this is double challenge, they want to provide users with the bleeding edge UI patterns and at the same time, they have to deal with evolving API, that sometimes changes dramatically.
Presentation covers the gotchas developer might face dealing with ever-moving Android API, and how to utilize Java language and the tools it have to make the experience for developer more pleasant. Typical trends in the API will get analyzed and divided into several areas or "patterns", discussing typical scenarios how these components are designed and implemented.
This talk will propose several such UI patterns, that will compete to become "de facto" standards and details on the implementation, including possible impact on existing API as we have both end users and developers in mind.
The list of patterns/areas discussed in the talk include following :
ActionBar
ListView
TimePicker
KineticGestureComponent
The document discusses opportunities to improve the Android user experience through more flexible and responsive layouts, improved action bar designs, and innovative input methods like gesture and sensor-based interactions. It presents examples of custom view groups and adapters that provide flexible resizing and binding of data to views. The talk argues the action bar could be improved through more consistent behavior and use of available screen space. Ideas for new date/time pickers and gesture-based interactions are also proposed to enhance the Android experience.
The document discusses unobtrusive JavaScript and the UJS plugin for Rails. It describes separating JavaScript behavior from HTML content and CSS styling. The UJS plugin allows defining behaviors via CSS selectors and keeping scripts in external files. Examples are given of attaching remote behaviors to links and forms using the UJS plugin.
How to Mess Up Your Angular UI Componentscagataycivici
This document provides tips on how to potentially mess up Angular UI components. It begins by introducing the author, Çağatay Çivici, and his background and interests. It then covers various topics that could cause issues, such as one-way vs two-way binding, ngModel support, templating, content projection, change detection strategies, accessing the DOM, global events, and third-party integration. The document aims to help developers avoid common pitfalls when building Angular UI components through a series of examples and case studies.
Workshop on how to build Vaadin Add-ons. We introduce two styles of building Vaadin add-on components for Vaadin: integrating an existing GWT widget (DatePicker), and integrating an existing JavaScript library (three.js).
React Native enables you to build world-class application experiences on native platforms using a consistent developer experience based on JavaScript and React. The focus of React Native is on developer efficiency across all the platforms you care about — learn once, write anywhere.
An idea of how to make JavaScript testable, presented at Stir Trek 2011. The world of JavaScript frameworks has changed greatly since then, but I still agree with the concepts.
This document provides an introduction and overview of jQuery. It discusses why jQuery is useful, unobtrusive JavaScript, fundamental jQuery elements and concepts like selectors and the jQuery wrapper. It also covers more advanced topics like query chains, advanced selectors, the document ready handler, extending jQuery, and using jQuery with other libraries. The document is intended to teach the basics of jQuery and how it can be used to select and manipulate elements on an HTML page.
This document provides best practices for using jQuery, including loading jQuery from a CDN, using variables to cache jQuery objects, optimizing selectors for performance, best practices for DOM manipulation, event handling, AJAX requests, animations, chaining, using plugins, and other miscellaneous tips. Key recommendations include prefixing variables with $, using ID selectors when possible, giving selectors context, avoiding implied universal selectors, detaching elements before manipulation, avoiding anonymous event handlers, and using object literals for parameters.
Three Simple Chords of Alternative PageObjects and Hardcore of LoadableCompon...Iakiv Kramarenko
Three simple approaches for implementing web UI automation were discussed: PageObjects, LoadableComponents, and PageUtils. PageObjects use object-oriented inheritance but can become complex. LoadableComponents encapsulate page loading logic but may lead to overcomplicated hierarchies. PageUtils use a procedural approach with functions to represent pages and elements, avoiding complexity while enabling easy tests. Functional programming concepts like higher-order functions can help address lack of DRYness in the procedural approach. The best approach depends on the project needs in terms of teaching others, speed of development, and ability to handle future changes.
Backbone is a JavaScript framework that provides models, collections, and views for building single-page web applications. Models contain key-value data and custom events, and collections provide a rich API for working with collections of models. Views handle user interface elements and connect events to methods. The document describes how Backbone components like models, collections, routers and views work together to build a simple todo list application.
Jak kraść miliony, czyli o błędach bezpieczeństwa, które mogą spotkać również...The Software House
Często zdarza się, że na testy bezpieczeństwa nie ma czasu lub budżetu. Testy te często są wykonywane na sam koniec, gdy nie ma możliwości na dłuższą analizę. Przez takie myślenie, padają firmy lub zwykli obywatele tracą dostęp do swoich danych czy po prostu te dane wyciekają. Przeanalizujemy kilka ostatnich ataków, zastanowimy się jak można było temu zapobiec.
Ostatnia prezentacja w historii Uszanowanka Programowanka. O przemianach, jakie przechodził meetup, rozwoju i zabawnych sytuacjach opowiada CTO The Software House.
W ciągu ostatnich 7 miesięcy przeszedłem drogę z poziomu Cloud Practitioner do Solutions Architect Professional, zdobywając nie tylko 5 certyfikatów, ale przede wszystkim wiedzę i praktykę, dzięki którym dziś pracuje mi się łatwiej i efektywniej. Na tym spotkaniu opowiem o motywacjach, wyzwaniach, strategiach nauki oraz najbardziej wartościowych źródłach wiedzy, dzięki którym zaplanujesz swoją drogę do certyfikatów. I to bez względu na to, czy dopiero zaczynasz swoją przygodę z AWS, czy masz już za sobą masę doświadczeń, które chcesz potwierdzić “na papierze”.
Dostępność, accessibility, a11y, WCAG… Dla niektórych to tylko dodatkowe tematy do przerobienia w projektach, które pochłaniają więcej czasu i budżetu. Według mnie to jednak ważny element, który zmienia internet w przyjazne miejsce dla wszystkich użytkowników. Jak reaguje twoja mobilna apka w słoneczny dzień? Czy buttony są wystarczająco duże, żeby wszyscy (nawet niedowidzący czy seniorzy) je zauważyli? Czy da się skorzystać z systemu, który tworzysz za pomocą klawiatury? I w końcu czy ta cała dostępność to tylko “hot topic”, a może faktyczna potrzeba? Odpowiem na te pytania głównie z perspektywy biznesu, ale nie zabraknie konkretnych wskazówek technicznych. Będzie o dostępności w pigułce.
Case study naszego wdrożenia rozwiązania czatu tekstowego przy użyciu zestawu Amazon Chime SDK. Moja prezentacja będzie składać się z przeglądu projektu, dlaczego w ogóle potrzebowaliśmy czatu tekstowego, podróży wdrożeniowej i wyzwań, przed którymi stanęliśmy (takich jak ograniczanie żądań i problemy ze skalowalnością). Wspomnę też pokrótce o innych funkcjonalnościach Amazon Chime, z których nie korzystaliśmy.
Pamiętacie jeszcze stare programy lub aplikacje pisane przy użyciu C, Assemblera lub innych bardzo przestarzałych technologii? Ja też nie. Za to jeden z naszych klientów pamięta i przyszedł z prośbą o przeniesienie danych z jego starej aplikacji do nowej. Podczas tej prezentacji będziecie mogli zobaczyć, jak poradziliśmy sobie z problemami wynikającymi z istniejących aplikacji oraz jak stworzyliśmy oprogramowanie migrujące dane na podstawie usług dostępnych w AWS.
Architektura serverless zyskuje na popularności każdego dnia. Większość developerów napotka to na swojej drodze kariery. Jak się z tym zmierzyć, jakich narzędzi użyć aby nie zwariować i uciec w Bieszczady? Jak wdrożyć sprawdzoną strukturę? Porozmawiajmy o tym jak dość płynnie wejść w świat architektury typu serverless.
Analiza semantyczna artykułów prasowych w 5 sprintów z użyciem AWSThe Software House
Case study na temat narzędzia, które zestawia analizę artykułów pod kątem płci z danymi o odbiorcach z Google Analytics, co pozwala na optymalizację treści i lepsze przyciąganie rzeszy czytelników. Dzięki wykorzystaniu AWS błyskawicznie przygotowaliśmy działające MVP.
Piątek po południu. Wypuściłeś aktualizację na serwer z nową funkcjonalnością (mimo, że wszyscy ci odradzali). Ale był tam krytyczny fix buga. Nie miałeś innego wyjścia. 5 minut po deployu okazuje się, że system leży – nowa funkcjonalność coś popsuła. Chyba czeka cię długi piątek/weekend. Gdybyś miał Feature Flags w projekcie, to twój piątek wyglądałby zupełnie inaczej. Feature Flags (albo Feature Toggles) pozwalają ukryć funkcjonalność przed użytkownikiem końcowym i wyświetlić ją warunkowo. Dzięki temu można spokojnie merge’ować wszystko do głównej gałęzi. Albo wyłączyć funkcjonalność w ciągu kilku minut, jeśli jest wadliwa. Na prezentacji opowiem, dlaczego w swojej aplikacji JavaScript powinieneś rozważyć Feature Flags. Wady, zalety i praktyczne wskazówki jak sobie z tym radzić. I to wszystko z perspektywy osoby, która korzysta z tego od dłuższego czasu. Po wyjściu z prezentacji będziesz wiedzieć kiedy warto stosować flagi i jak utrzymać je pod kontrolą.
TypeScript na przestrzeni lat udowodnił że da się okiełznać dużą część problemów wynikających z dynamiczności języka JavaScript. Strukturalne typowanie które oferuje potrafi w miarę nieinwazyjnie pomóc w wykrywaniu pułapek, w które wpadlibyśmy, pisząc w czystym JS. Co jednak w przypadku gdy coś kwacze jak kaczka ale nią nie jest? Czy da się zabezpieczyć developera przed pomieszaniem dwóch różnych jednostek, które w historii doprowadziły do nie jednej katastrofy? Na prelekcji przejdziemy przez różne case study i zastanowimy się jak pomóc TypeScriptowi w ostrzeganiu nas przed pułapkami których nie zawsze da się uniknąć w pierwotnym typowaniu strukturalnym.
Automatyzacja tworzenia frontendu z wykorzystaniem GraphQLThe Software House
W ramach tej prezentacji pokażę jak efektywnie wykorzystać GraphQL `codegen` do generowania hooków i typów, które pomogą obsłużyć dowolne query i mutation, czyniąc kod nie tylko czytelniejszym, ale również łatwiejszym w utrzymaniu. W tym celu wspólnie postawimy przykładowy projekt, a także poświęcimy kilka minut na skonfigurowanie IDE. Dzięki temu nasza codzienna praca stanie się przyjemniejsza i efektywniejsza.
Kiedy aplikacja napisana w Serverless Frameworku jest mała, można zamieść niektóre rzeczy pod dywan. Ale co, kiedy po kilku miesiącach zaczyna wychodzić spod niego prawdziwy potwór? Co, kiedy musisz przetestować jedną lambdę na środowisku, a deploy całego stacka trwa 20 minut? No i jak przeorganizować aplikację wiedząc, że ciągle będzie rosła? Dowiedz się, jak rozbiliśmy naszą hurtownię danych wykorzystując Serverless Compose. Jakie przyniosło nam to efekty i o czym dowiedzieliśmy się w trakcie.
Testy API: połączenie z bazą danych czy implementacja w pamięciThe Software House
Testy integracyjne wykonują realne żądania na API. Trzeba zatem zadbać o odpowiednie skonfigurowanie środowiska do testów. Kwestia danych to jedno z podstawowych zagadnień z którym należy sobie poradzić. Do tematu można podejść na kilka sposobów, ale sprowadzają się one do dwóch kategorii: baza danych albo implementacja w pamięci. Dowiedz się, które z nich sprawdzi się w twoim projekcie.
Opowieść o tym, jak w projekcie legacy, który już ledwo dychał, udało się zaimplementować read model oparty na ElasticSearch (choć nie bez przeszkód i czasami pod prąd). Podczas prezentacji aplikacja legacy i walka o przyspieszenie zapytań posłuży jako punkt wyjścia do przeanalizowania konceptu “read modeli”. Po co wdrażamy je do aplikacji? Jakie są metody utrzymania ich w spójności? A w końcu – ich wady i zalety. W przypadku wspomnianej aplikacji zapytania które trwały około 8 minut udało się przyspieszyć do poniżej 1s (choć nie obyło się to bez potknięć). Zobacz jak!
Firestore czyli ognista baza od giganta z Doliny KrzemowejThe Software House
Podczas codziennej pracy każdy z nas korzysta z różnych baz danych,
Każda baza ma zachowania typowe dla siebie. Firestore to nierelacyjna baza od Google, która posiada wiele nietypowych funkcjonalności, wiele ciekawych rozwiązań. W tej prezentacji dowiemy się o paru fajnych zastosowań w Firestore i na co warto uważać przy implementacji tego rozwiązania.
AWS, a w szczególności serverless computing, oferuje nam możliwość skalowania naszych systemów out-of-the-box. W większości przypadków jest to nam bardzo na rękę, ale… Co w sytuacji, gdy potrzebujemy z chirurgiczną precyzją kontrolować, ile aktualnie Lambd jest w użytku? Okazuje się, że nie jest to do końca taka prosta sprawa, gdyż AWS uporczywie robi wszystko, co może, aby wyskalować nasz system, niezależnie czy tego chcemy, czy nie. W tej prelekcji zaprezentuję możliwe sposoby rate limitingu naszych funkcji. Za przykład posłuży nam komunikacja z 3-rd party API, gdzie w większości przypadków jesteśmy ograniczeni ilością requestów, jakie możemy wykonać w jednostce czasu, żeby nie otrzymać 429-tki.
AWS oferuje zbiór niezwykle przydatnych narzędzi i rozwiązań. Potrafi też jednak zaskoczyć. W trakcie swojej prezentacji, Karol przedstawi kilka problemów na które natknął się w projektach, a które wzięły jego zespół z zaskoczenia. Skupi się też na tym, jak skutecznie sobie z nimi poradzić.
The document discusses Storyblok CMS and how it can be used with Next.js. Some key points:
- Storyblok CMS allows non-technical users to build landing pages from predefined components and developers to collaborate asynchronously on new components.
- With Storyblok, content is modeled as the whole website layout rather than just text. It delivers JSON data to render pages.
- Storyblok provides features like live preview, internationalization utilities, and an image service.
- The presentation demonstrates modeling data in Storyblok, receiving it in Next.js, and coding the app to iterate over Storyblok data and map it to components to create pages dynamically.
Amazon Step Functions. Sposób na implementację procesów w chmurzeThe Software House
Zmęczony łańcuchowym (i wieloogniwowym) wywoływaniem AWS Lambd przez inne Lambdy? Śledzenie poszczególnych inwokacji od początkowej do końcowej Lambdy to droga przez mękę? I nawet AWS X-Ray tu nie wystarcza? Rozwiązaniem jest Amazon Step Function, czyli usługa AWS umożliwiająca łączenie poszczególnych kroków logicznych w proces, z jasnym dostępem do historii i szczegółów wywołań.
AWS Amplify Studio jest nowością od AWS’a, która pozwala połączyć komponenty Figma z bazą danych i wygenerować gotowy kod React. Czy to oznacza, że frontend deweloperzy przestaną być potrzebni? A może te narzędzie to tylko chwyt reklamowy? I czemu AWS zainteresował się narzędziami low-code/no-code. Na to wszystko Aleksander odpowie w swojej prezentacji. I pokaże na żywo jak przejść od Figmy do gotowej aplikacji.
Download Wondershare Filmora Crack [2025] With Latesttahirabibi60507
Copy & Past Link 👉👉
http://drfiles.net/
Wondershare Filmora is a video editing software and app designed for both beginners and experienced users. It's known for its user-friendly interface, drag-and-drop functionality, and a wide range of tools and features for creating and editing videos. Filmora is available on Windows, macOS, iOS (iPhone/iPad), and Android platforms.
Download YouTube By Click 2025 Free Full Activatedsaniamalik72555
Copy & Past Link 👉👉
https://dr-up-community.info/
"YouTube by Click" likely refers to the ByClick Downloader software, a video downloading and conversion tool, specifically designed to download content from YouTube and other video platforms. It allows users to download YouTube videos for offline viewing and to convert them to different formats.
Secure Test Infrastructure: The Backbone of Trustworthy Software DevelopmentShubham Joshi
A secure test infrastructure ensures that the testing process doesn’t become a gateway for vulnerabilities. By protecting test environments, data, and access points, organizations can confidently develop and deploy software without compromising user privacy or system integrity.
Exploring Wayland: A Modern Display Server for the FutureICS
Wayland is revolutionizing the way we interact with graphical interfaces, offering a modern alternative to the X Window System. In this webinar, we’ll delve into the architecture and benefits of Wayland, including its streamlined design, enhanced performance, and improved security features.
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...Eric D. Schabell
It's time you stopped letting your telemetry data pressure your budgets and get in the way of solving issues with agility! No more I say! Take back control of your telemetry data as we guide you through the open source project Fluent Bit. Learn how to manage your telemetry data from source to destination using the pipeline phases covering collection, parsing, aggregation, transformation, and forwarding from any source to any destination. Buckle up for a fun ride as you learn by exploring how telemetry pipelines work, how to set up your first pipeline, and exploring several common use cases that Fluent Bit helps solve. All this backed by a self-paced, hands-on workshop that attendees can pursue at home after this session (https://o11y-workshops.gitlab.io/workshop-fluentbit).
Landscape of Requirements Engineering for/by AI through Literature ReviewHironori Washizaki
Hironori Washizaki, "Landscape of Requirements Engineering for/by AI through Literature Review," RAISE 2025: Workshop on Requirements engineering for AI-powered SoftwarE, 2025.
Meet the Agents: How AI Is Learning to Think, Plan, and CollaborateMaxim Salnikov
Imagine if apps could think, plan, and team up like humans. Welcome to the world of AI agents and agentic user interfaces (UI)! In this session, we'll explore how AI agents make decisions, collaborate with each other, and create more natural and powerful experiences for users.
WinRAR Crack for Windows (100% Working 2025)sh607827
copy and past on google ➤ ➤➤ https://hdlicense.org/ddl/
WinRAR Crack Free Download is a powerful archive manager that provides full support for RAR and ZIP archives and decompresses CAB, ARJ, LZH, TAR, GZ, ACE, UUE, .
Pixologic ZBrush Crack Plus Activation Key [Latest 2025] New Versionsaimabibi60507
Copy & Past Link👉👉
https://dr-up-community.info/
Pixologic ZBrush, now developed by Maxon, is a premier digital sculpting and painting software renowned for its ability to create highly detailed 3D models. Utilizing a unique "pixol" technology, ZBrush stores depth, lighting, and material information for each point on the screen, allowing artists to sculpt and paint with remarkable precision .
Adobe After Effects Crack FREE FRESH version 2025kashifyounis067
🌍📱👉COPY LINK & PASTE ON GOOGLE http://drfiles.net/ 👈🌍
Adobe After Effects is a software application used for creating motion graphics, special effects, and video compositing. It's widely used in TV and film post-production, as well as for creating visuals for online content, presentations, and more. While it can be used to create basic animations and designs, its primary strength lies in adding visual effects and motion to videos and graphics after they have been edited.
Here's a more detailed breakdown:
Motion Graphics:
.
After Effects is powerful for creating animated titles, transitions, and other visual elements to enhance the look of videos and presentations.
Visual Effects:
.
It's used extensively in film and television for creating special effects like green screen compositing, object manipulation, and other visual enhancements.
Video Compositing:
.
After Effects allows users to combine multiple video clips, images, and graphics to create a final, cohesive visual.
Animation:
.
It uses keyframes to create smooth, animated sequences, allowing for precise control over the movement and appearance of objects.
Integration with Adobe Creative Cloud:
.
After Effects is part of the Adobe Creative Cloud, a suite of software that includes other popular applications like Photoshop and Premiere Pro.
Post-Production Tool:
.
After Effects is primarily used in the post-production phase, meaning it's used to enhance the visuals after the initial editing of footage has been completed.
F-Secure Freedome VPN 2025 Crack Plus Activation New Versionsaimabibi60507
Copy & Past Link 👉👉
https://dr-up-community.info/
F-Secure Freedome VPN is a virtual private network service developed by F-Secure, a Finnish cybersecurity company. It offers features such as Wi-Fi protection, IP address masking, browsing protection, and a kill switch to enhance online privacy and security .
Solidworks Crack 2025 latest new + license codeaneelaramzan63
Copy & Paste On Google >>> https://dr-up-community.info/
The two main methods for installing standalone licenses of SOLIDWORKS are clean installation and parallel installation (the process is different ...
Disable your internet connection to prevent the software from performing online checks during installation
Discover why Wi-Fi 7 is set to transform wireless networking and how Router Architects is leading the way with next-gen router designs built for speed, reliability, and innovation.
🌍📱👉COPY LINK & PASTE ON GOOGLE http://drfiles.net/ 👈🌍
Adobe Illustrator is a powerful, professional-grade vector graphics software used for creating a wide range of designs, including logos, icons, illustrations, and more. Unlike raster graphics (like photos), which are made of pixels, vector graphics in Illustrator are defined by mathematical equations, allowing them to be scaled up or down infinitely without losing quality.
Here's a more detailed explanation:
Key Features and Capabilities:
Vector-Based Design:
Illustrator's foundation is its use of vector graphics, meaning designs are created using paths, lines, shapes, and curves defined mathematically.
Scalability:
This vector-based approach allows for designs to be resized without any loss of resolution or quality, making it suitable for various print and digital applications.
Design Creation:
Illustrator is used for a wide variety of design purposes, including:
Logos and Brand Identity: Creating logos, icons, and other brand assets.
Illustrations: Designing detailed illustrations for books, magazines, web pages, and more.
Marketing Materials: Creating posters, flyers, banners, and other marketing visuals.
Web Design: Designing web graphics, including icons, buttons, and layouts.
Text Handling:
Illustrator offers sophisticated typography tools for manipulating and designing text within your graphics.
Brushes and Effects:
It provides a range of brushes and effects for adding artistic touches and visual styles to your designs.
Integration with Other Adobe Software:
Illustrator integrates seamlessly with other Adobe Creative Cloud apps like Photoshop, InDesign, and Dreamweaver, facilitating a smooth workflow.
Why Use Illustrator?
Professional-Grade Features:
Illustrator offers a comprehensive set of tools and features for professional design work.
Versatility:
It can be used for a wide range of design tasks and applications, making it a versatile tool for designers.
Industry Standard:
Illustrator is a widely used and recognized software in the graphic design industry.
Creative Freedom:
It empowers designers to create detailed, high-quality graphics with a high degree of control and precision.
Avast Premium Security Crack FREE Latest Version 2025mu394968
🌍📱👉COPY LINK & PASTE ON GOOGLE https://dr-kain-geera.info/👈🌍
Avast Premium Security is a paid subscription service that provides comprehensive online security and privacy protection for multiple devices. It includes features like antivirus, firewall, ransomware protection, and website scanning, all designed to safeguard against a wide range of online threats, according to Avast.
Key features of Avast Premium Security:
Antivirus: Protects against viruses, malware, and other malicious software, according to Avast.
Firewall: Controls network traffic and blocks unauthorized access to your devices, as noted by All About Cookies.
Ransomware protection: Helps prevent ransomware attacks, which can encrypt your files and hold them hostage.
Website scanning: Checks websites for malicious content before you visit them, according to Avast.
Email Guardian: Scans your emails for suspicious attachments and phishing attempts.
Multi-device protection: Covers up to 10 devices, including Windows, Mac, Android, and iOS, as stated by 2GO Software.
Privacy features: Helps protect your personal data and online privacy.
In essence, Avast Premium Security provides a robust suite of tools to keep your devices and online activity safe and secure, according to Avast.
⭕️➡️ FOR DOWNLOAD LINK : http://drfiles.net/ ⬅️⭕️
Maxon Cinema 4D 2025 is the latest version of the Maxon's 3D software, released in September 2024, and it builds upon previous versions with new tools for procedural modeling and animation, as well as enhancements to particle, Pyro, and rigid body simulations. CG Channel also mentions that Cinema 4D 2025.2, released in April 2025, focuses on spline tools and unified simulation enhancements.
Key improvements and features of Cinema 4D 2025 include:
Procedural Modeling: New tools and workflows for creating models procedurally, including fabric weave and constellation generators.
Procedural Animation: Field Driver tag for procedural animation.
Simulation Enhancements: Improved particle, Pyro, and rigid body simulations.
Spline Tools: Enhanced spline tools for motion graphics and animation, including spline modifiers from Rocket Lasso now included for all subscribers.
Unified Simulation & Particles: Refined physics-based effects and improved particle systems.
Boolean System: Modernized boolean system for precise 3D modeling.
Particle Node Modifier: New particle node modifier for creating particle scenes.
Learning Panel: Intuitive learning panel for new users.
Redshift Integration: Maxon now includes access to the full power of Redshift rendering for all new subscriptions.
In essence, Cinema 4D 2025 is a major update that provides artists with more powerful tools and workflows for creating 3D content, particularly in the fields of motion graphics, VFX, and visualization.
3. KAKUNIN WORKSHOPS
AGENDA
▸ HOW TO INSTALL AND CONFIGURE KAKUNIN?
▸ HOW TO NAVIGATE BETWEEN PAGES AND
VALIDATE CURRENT PAGE?
▸ HOW TO INTERACT WITH ELEMENTS AND
VALIDATE CONTENT?
▸ HOW TO FILL IN, CHECK OUT ITS VALUES AND
VALIDATE FORMS?
▸ HOW TO CHECK EMAILS CONTENT?
▸ HOW TO DEBUG KAKUNIN?
4. KAKUNIN WORKSHOPS
▸ HOW TO EXTEND KAKUNIN WITH CUSTOM STEPS?
▸ HOW TO HANDLE NON-BUILT-IN FORM FIELD
TYPES?
▸ HOW TO ADD SCENARIO SPECIFIC HOOKS?
▸ HOW TO CONNECT DIFFERENT MAILING SERVICE?
AGENDA
6. WHAT IS KAKUNIN?
▸ PROTRACTOR EXTENSION
▸ GHERKIN AS A PROGRAMMING LANGUAGE
▸ BUILT-IN STEPS TO SOLVE MOST COMMON CASES
▸ EASLY EXTENDABLE
▸ HANDLES ANGULAR AND NON-ANGULAR APPS
OUT OF THE BOX
KAKUNIN
10. INSTALATION
HOW TO INSTALL?
npm run kakunin init
cd step_definitions
ln -s ../node_modules/kakunin/dist/step_definitions/elements.js kakunin-elements.js
ln -s ../node_modules/kakunin/dist/step_definitions/debug.js kakunin-debug.js
ln -s ../node_modules/kakunin/dist/step_definitions/file.js kakunin-file.js
ln -s ../node_modules/kakunin/dist/step_definitions/form.js kakunin-form.js
ln -s ../node_modules/kakunin/dist/step_definitions/email.js kakunin-email.js
ln -s ../node_modules/kakunin/dist/step_definitions/generators.js kakunin-generators.js
ln -s ../node_modules/kakunin/dist/step_definitions/navigation.js kakunin-navigation.js
11. INSTALATION
HOW TO INSTALL?
npm run kakunin
Scenario:
If you can see this in console then hook is working properly.
✔ When I visit the "page" page
✔ And I generate random "name" as "myName"
✔ Then my matcher "e:name" matches "v:myName"
✔ And my matcher "e:name" matches "Bob"
1 scenario (1 passed)
4 steps (4 passed)
0m00.757s
12. INSTALATION
HOW TO RUN A SINGLE SCENARIO?
npm run kakunin -- --tags @someTag
npm run kakunin -- --tags="@someTag and @otherTag"
npm run kakunin -- --tags="@someTag or @otherTag"
npm run kakunin -- --tags="not @someTag"
14. NAVIGATE BETWEEN PAGES
PAGE OBJECT
const { BasePage } = require('kakunin');
class MainPage extends BasePage {
constructor() {
super();
this.url = '/';
}
}
module.exports = new MainPage();
15. NAVIGATE BETWEEN PAGES
SCENARIO - NAVIGATING
Feature: Load main page
Scenario: Load main page as homepage
Given/When I visit the "main" page
The name of a page object file. For this case there has to be a file "main.js" in pages directory.
16. NAVIGATE BETWEEN PAGES
SCENARIO - CHECKING OUT ON WHAT PAGE WE ARE
Then the "main" page is displayed
The name of a page object file. For this case there has to be a file "main.js" in pages directory.
18. NAVIGATE BETWEEN PAGES
WHAT ABOUT URL WITH PARAMETERS ?
/suppliers/some-supplier-id/clients/some-client-id
/suppliers/:supplierId/clients/:clientId
...
this.url = '/suppliers/:supplierId/clients/:clientId';
...
19. NAVIGATE BETWEEN PAGES
PAGE CONTEXT
Then the "main" page is displayed
EVERY BUILT-IN STEP (EXCEPT NAVIGATION
ONES) WILL HAVE AN ACCESS TO MAIN PAGE
OBJECT.
21. INTERACTING WITH ELEMENTS
Then the "showActive" element is visible
The name of a selector from current page object file.
ELEMENT VISIBILITY
22. INTERACTING WITH ELEMENTS
SELECTORS
▸ defines access to element
▸ support for protractor locators
http://www.protractortest.org/#/api?
view=ProtractorBy
▸ support for angular only attributes
23. INTERACTING WITH ELEMENTS
SELECTORS
▸ id attribute, custom attribute, custom class, unique class - GOOD
▸ for angular app: ng-model, ng-repeat - GOOD
▸ html tag - BAD
▸ angular validation classes (ng-valid, ng-pristine etc) - VERY BAD
24. INTERACTING WITH ELEMENTS
SELECTORS
this.mySelectorName = $('.css-selector');
this.mySelectorName = $('html-tag');
this.mySelectorName = $('html-tag.css-selector');
this.mySelectorName = element(by.repeater('project in projects'));
25. INTERACTING WITH ELEMENTS
Then the "showActive" element is visible
ELEMENT VISIBILITY - PROBLEM
THE ELEMENT MUST BE VISIBLE RIGHT AWAY.
IT DOES NOT WAIT FOR ELEMENT TO BE
VISIBLE.
26. INTERACTING WITH ELEMENTS
When/Given/Then I wait for "visibilityOf" of the "showActive" element
ELEMENT VISIBILITY - SOLUTION
uses protractors expected conditions internally, for example
visibilityOf
invisibilityOf
27. INTERACTING WITH ELEMENTS
ELEMENT VISIBILITY - WHAT ELSE?
When/Given/Then the "showCompleted" element is present
When/Given/Then the "showCompleted" element is not visible
When/Given/Then the "showCompleted" element is not present
28. INTERACTING WITH ELEMENTS
When I fill the "myForm" form with:
| fieldSelector | value to be used |
Form selector
Input selector
this.myForm = $('.add-todo');
this.fieldSelector = $('.add-todo input[name="add-todo"]');
FILLING UP FORM
29. INTERACTING WITH ELEMENTS
Then the "myForm" form is filled with:
| fieldSelector | value to be used |
Form selector
Input selector
CHECKING OUT FORM VALUE
30. INTERACTING WITH ELEMENTS
WHAT ABOUT DIFFERENT FIELD TYPES?
▸ supports all of the basic html field types (radio, checkbox, textarea, select, file, text)
▸ allows to add custom made handlers for field types
31. INTERACTING WITH ELEMENTS
HOW ABOUT SUBMITTING ?
When I click the "addTodoButton" element
The name of a selector from current page object file.
55. TRANSFORMERS
When I fill the "myForm" form with:
| projectUrl | http://some-url.com |
| projectType | 1234 |
WITHOUT TRANSFORMERS
When I fill the "myForm" form with:
| projectUrl | g:projectUrl |
| projectType | d:projectTypes:website |
WITH TRANSFORMERS
60. EMAILS
CHECKING EMAILS
Then the email has been sent:
| currentUser | | | |
| subject | some subject | | |
| html_body | some id | | |
| file | some file | PDF | 9000 |
ALLOWS TO FILTER EMAIL CONTENT
BY MULTIPLE FILEDS
61. EMAILS
CHECKING EMAILS - FILTERS
▸ currentUser - checks if email was sent to current logged user, requires integration with Kakunin User
Provider
▸ subject - allows to check email subject
▸ html_body - allows to check content of email
▸ file - allows to check attachments, it's type, name and size
ALL FILTERS SUPPORT MATCHERS
65. CONTENT VALIDATION
FORM VALIDATIONS
Then the error messages should be displayed:
| element | errorMessage |
| nameValidationMsg | This value should not be blank. |
| targetMarketSegmentValidationMsg | This value should not be blank. |
this.nameValidationMsg = $('.name .form__error');
66. CONTENT VALIDATION
VALIDATE ELEMENT CONTENT
Then there are "equal 1" "todos" elements
uses chai.js expectations
equal X
above X
between X Y
at least X
68. CONTENT VALIDATION
VALIDATE ELEMENT CONTENT
Then there are "equal 1" "todos" elements
this.todos = $$('ul li');
this.todos = element.all(by.css('ul li'));
69. CONTENT VALIDATION
VALIDATE ELEMENT CONTENT
Then there is element "myElement" with value "r:notEmpty"
Then there is element "myElement" with value "t:some text"
Then there is element "myElement" with value "f:isClickable"
73. CONTENT VALIDATION
VALIDATE ELEMENT CONTENT - DETAILED CHECK
Then there are "equal 1" following elements for element "todos":
| element | value |
| removeButton | f:isVisible |
REQUIRES LIST SELECTOR
CHILD ELEMENTS MUST BE LOCATORS, NOT ELEMENTS
74. CONTENT VALIDATION
this.todos = $$('ul li');
Then there are "equal 1" following elements for element "todos":
| element | value |
| removeButton | f:isVisible |
this.removeButton = by.css('.remove');
VALIDATE ELEMENT CONTENT - DETAILED CHECK
76. CONTENT VALIDATION
FILE DOWNLOAD
Then the file "fileName.extension" should be downloaded
downloaded file name, the same as the one normally have in browser