The document describes the evolution of React patterns used at Product Hunt over time, from early jQuery implementations to more modern approaches using React, Redux, GraphQL, and other technologies. It discusses the types of components used (generic, utility, domain-specific) and how components are structured, including CSS Modules and TypeScript types. Utility components discussed include ones for window resizing, scrolling, and keyboard handling. Form components are shown using context and functions as children props.
1. The document discusses REST (Representational State Transfer) and how it is used in Rails. REST uses HTTP methods like GET, POST, PUT, DELETE to perform CRUD (create, read, update, delete) operations on resources.
2. Rails follows REST principles by using resourceful routing and RESTful controllers with actions that map to HTTP methods. This allows creating clean, semantic URLs and simplifies development.
3. RESTful design in Rails encourages using the same URL structure for related resources. For example, adding comments to an article would use POST /articles/:article_id/comments rather than adding a custom action to the ArticlesController.
Jquery Complete Presentation along with Javascript BasicsEPAM Systems
jQuery is a JavaScript library that simplifies HTML document manipulation and event handling. It allows developers to select elements, hide/show elements, and handle events with simple and concise code. jQuery animations and effects like fade, slide, and animate allow for creative transitions between states.
This document provides an overview of views in ASP.NET MVC, including how views are used to display data to users, how Razor syntax is used in views, and how HTML helpers can generate HTML form elements in views. It discusses view basics, passing models to views, Razor code expressions and blocks, scaffolding to generate views, and specific HTML helpers like LabelFor, DropDownListFor, TextBoxFor and TextAreaFor.
An introduction to the Ember JavaScript web application framework. Find out how to build a browser based MVC app using routes, templates, models and controllers. Based on Ember 1.13 and designed to run in jsbin or a single page HTML file, the code can still be used in an EMber CLI based app.
Django Meetup Bogotá. Class Based Views con ejemplos. Class Based Views with examples.
Código fuente: https://bitbucket.org/vero4ka/cbvexamples
Class Based Views with examles.
Ch9 .Best Practices for Class-Based ViewsWilly Liu
This document discusses best practices for using class-based views in Django. It begins by explaining the benefits of class-based views over function-based views, such as avoiding repetitive code and providing a standard way to handle HTTP requests. It then covers the basic anatomy of class-based views, including inheriting from View, dispatching requests, and defining methods like get() and post(). The document also introduces generic class-based views and provides tips on customizing views through attributes, method overrides, and mixins.
Selenide is simple and powerful in use wrapper-library over Selenium. But what the point just of shorter lines of code? In this talk we will see how to tame your webui mustang with Selenide and put it into fence of simple BDD stories with Easyb. We also consider pros and cons of the approach and compare to available alternatives.
How to Build ToDo App with Vue 3 + TypeScriptKaty Slemon
Here’s a comprehensive step-by-step tutorial on how to get started with Vue Typescript. Let’s understand building To-do application combining Vue 3 + Typescript.
1. The document discusses REST (Representational State Transfer) and how it is used in Rails. REST uses HTTP methods like GET, POST, PUT, DELETE to perform CRUD (create, read, update, delete) operations on resources.
2. Rails follows REST principles by using resourceful routing and RESTful controllers with actions that map to HTTP methods. This allows creating clean, semantic URLs and simplifies development.
3. RESTful design in Rails encourages using the same URL structure for related resources. For example, adding comments to an article would use POST /articles/:article_id/comments rather than adding a custom action to the ArticlesController.
Jquery Complete Presentation along with Javascript BasicsEPAM Systems
jQuery is a JavaScript library that simplifies HTML document manipulation and event handling. It allows developers to select elements, hide/show elements, and handle events with simple and concise code. jQuery animations and effects like fade, slide, and animate allow for creative transitions between states.
This document provides an overview of views in ASP.NET MVC, including how views are used to display data to users, how Razor syntax is used in views, and how HTML helpers can generate HTML form elements in views. It discusses view basics, passing models to views, Razor code expressions and blocks, scaffolding to generate views, and specific HTML helpers like LabelFor, DropDownListFor, TextBoxFor and TextAreaFor.
An introduction to the Ember JavaScript web application framework. Find out how to build a browser based MVC app using routes, templates, models and controllers. Based on Ember 1.13 and designed to run in jsbin or a single page HTML file, the code can still be used in an EMber CLI based app.
Django Meetup Bogotá. Class Based Views con ejemplos. Class Based Views with examples.
Código fuente: https://bitbucket.org/vero4ka/cbvexamples
Class Based Views with examles.
Ch9 .Best Practices for Class-Based ViewsWilly Liu
This document discusses best practices for using class-based views in Django. It begins by explaining the benefits of class-based views over function-based views, such as avoiding repetitive code and providing a standard way to handle HTTP requests. It then covers the basic anatomy of class-based views, including inheriting from View, dispatching requests, and defining methods like get() and post(). The document also introduces generic class-based views and provides tips on customizing views through attributes, method overrides, and mixins.
Selenide is simple and powerful in use wrapper-library over Selenium. But what the point just of shorter lines of code? In this talk we will see how to tame your webui mustang with Selenide and put it into fence of simple BDD stories with Easyb. We also consider pros and cons of the approach and compare to available alternatives.
How to Build ToDo App with Vue 3 + TypeScriptKaty Slemon
Here’s a comprehensive step-by-step tutorial on how to get started with Vue Typescript. Let’s understand building To-do application combining Vue 3 + Typescript.
How to Implement Basic Angular Routing and Nested Routing With Params in Angu...Katy Slemon
Here’s a step-by-step guide to developing an Angular application from scratch with Basic Angular Routing and Nested Routing with params in Angular v11.
I presented this lecture to the new SharePoint devs joining our team. As I take on the challenge of Surface v2 development, I felt the urge to share my knowledge of branding SharePoint portals with jQuery for the past 1 year.
The document provides tips for Rails developers when working with designers, suggesting they use consistent naming for models and views, integrate CSS stylesheets and images properly, and use techniques like conditional comments and body classes to target styles for different browsers like Internet Explorer.
This document discusses WordPress plugins and database tables. It covers hooks, which allow plugins to connect functions to events. Hooks are either actions or filters. Database tables in WordPress use a metadata structure, with meta tables containing key-value pairs that provide flexibility. Taxonomies classify terms and allow terms to be associated with posts through term relationships and term taxonomies. Next week's topics will include adding admin menus and handling POST data for plugins.
AngularJs 2.0 introduces components as the fundamental building blocks, replacing directives. The presentation covers getting started with AngularJs 2.0, including dependencies, configuration, components, data binding, services, routing and migration from Angular 1. It emphasizes that Angular 2 is a rewrite built on newer standards to improve performance and reduce opinionation. Migration involves componentizing the application and using an upgrade adapter to support a hybrid Angular 1 and 2 app.
Page Objects Done Right - selenium conference 2014Oren Rubin
The document discusses page object design patterns for test automation. It describes four main steps: 1) Expose the service or page being tested rather than using WebDriver APIs directly in tests. 2) Eliminate random sleeps by adding wait methods. 3) Support different users by overloading methods or using parameters. 4) Initialize page objects using a page factory to avoid duplicating lookup code. It also discusses using coordinators to synchronize tests by waiting for events from the application under test.
This document discusses using WordPress as a backend for building mobile and web applications. It introduces WordPress' REST API which allows accessing WordPress content via HTTP requests. It then outlines how to build a simple mobile-first app called WROPE using the WordPress REST API and the JavaScript library Backbone.js, including setting up models, collections, views and routing to retrieve and display WordPress posts.
The document discusses React.js and JSX. It begins by showing how JSX allows HTML-like syntax to define React components. It then discusses how JSX compiles to JavaScript function calls that produce React elements. The document advocates separating logic and presentation into components. It also covers using props and state in components, routing, two-way data binding, and alternatives to Backbone models like using emitters. Overall, the document introduces React concepts like JSX, components, props, state, and data flow while advocating best practices like separation of concerns.
Паразитируем на React-экосистеме (Angular 4+) / Алексей Охрименко (IPONWEB)Ontico
The document discusses how Angular components can "parasitize" the React ecosystem. It begins by providing code examples of basic Angular component creation. It then explores terminology related to parasitism and parasitoids. Various approaches for communicating between Angular components using services, properties, and Redux are presented. The document also discusses ideas for libraries that could help convert React components to Angular. It covers tools and patterns for state management in Angular like Redux and MobX. Finally, it discusses how Angular components could potentially "parasitize" the React ecosystem in both helpful and harmful ways.
This document provides instructions for creating a simple blog using Django. It includes steps to:
1) Set up the Django project and install necessary apps like the admin interface.
2) Create a blog application with a Post model to store blog posts and configure the admin interface to manage posts.
3) Add templates to display list and detail views of posts and enable pagination for post lists.
4) Create a form to allow adding and editing blog posts from the admin and templates.
5) Provide instructions for deleting posts and include a link to download the full code files.
Learn all the essentials of building Angular 2 applications right here.
https://www.udemy.com/angular-2-training/?couponCode=UANGULAR2
This is a beginner level course aimed at those new to Angular 2 and Typescript. No previous knowledge of either is required before starting this course.
This course combines slides, projects and quizzes in a clear, concise and engaging way to guide you through the core concepts of Angular 2 and Typescript.
You will gain a solid foundation for building real-world applications following best practices and the Angular 2 style guide. This includes how to build components, create shared services, navigate between views, manage data, and managing user and system events.
GDI Seattle - Intro to JavaScript Class 4Heather Rock
This document provides an introduction to beginning JavaScript and jQuery. It covers HTML forms and accessing form values with JavaScript. It also discusses APIs, AJAX requests, JSON, libraries like jQuery, and making requests to GitHub's API using jQuery's AJAX functionality. Code examples are provided for creating forms, handling form submissions, making AJAX requests, and looping through the returned JSON data to output ids.
This workshop conducted by the team member of Inspire Chittagong (Mizanur Rahaman Mizan and Saad Amin). Workshop was in East Delta Univeristy. There was a session relating to the infos and also another one fully focusing on the practical theme development
Over the past two years I have been working at Malmberg to build an amazing new platform. In this presentation I would like to share the lessons we learned using Angular.
Gutenberg sous le capot, modules réutilisablesRiad Benguella
Gutenberg arrive, ça change tout pour ce qui est de la création de contenu dans WordPress. Mais ce que vous ne savez pas c’est que Gutenberg a le potentiel pour changer beaucoup de choses pour les développeurs de plugins et de thèmes WordPress et même à l’extérieur de la communauté WordPress.
De la gestion des données de votre plugin, la gestion des dates, l’internationalisation à l’interface UI, Gutenberg est une mine d’or qui ne demande qu’à être exploitée. Explorons ensemble l’architecture modulaire de Gutenberg et apprenons à réutiliser ses modules pour ses propres projets.
This document provides an overview of the Django web framework. It discusses Django's mission of encouraging rapid development and clean design. It demonstrates how to create a blog application with Django, including generating models, activating the admin interface, defining URLs and views, and using templates to display data. It also briefly compares Django to other frameworks like Ruby on Rails.
The document discusses Handlebars, a templating language for HTML. It can be used to render dynamic HTML views from JSON data sources by using templates with placeholders that are replaced by values from a context object. An example demonstrates creating a template, compiling it, providing a context with sample data, and rendering the template to insert the dynamic HTML into the page. Handlebars allows separation of design and data for model-view-controller applications.
Sara Soueidan: Styling and Animating Scalable Vector Graphics with CSS [CSSCo...Guillaume Kossi
Scalable Vector Graphics, or SVGs, are the new "big thing" in web design today, and for a good reason. With the proliferation of retina screens and high resolution displays, we need to adopt techniques that allow us to serve graphics that look good on all screens in all circumstances, and because SVGs offer resolution-independent, fully scalable and crystal clear graphics, it is safe to say that they are the future graphics format of the web.
In this talk we're going to see how SVGs can be styled in CSS, and how they can be animated using CSS animations and transitions. We're also going to cover "responsifying" SVGs using CSS media queries, and how we can control the size and looks of SVGs allowing them to adapt to different screen sizes. We'll cover a short workflow from a vector graphics editor to a responsive animated graphic on screen.
This document discusses React, a JavaScript library for building user interfaces. It provides an overview of React concepts like components, props, state, lifecycle methods, and the virtual DOM. Components are the basic building blocks and can be composed to build complex UIs. Data flows unidirectionally from parent to child components via props, while state is local and mutable. The virtual DOM allows React to efficiently update the real DOM by comparing component trees.
This document provides instructions for setting up a Django development environment and creating a basic Django project with an app. It covers installing Python and Pipenv, creating a virtual environment, installing Django, generating a project scaffold, creating an app, configuring URLs and templates, making migrations and running the development server. It also discusses Django templates, forms, models, views and generic views at a high level.
This document provides an overview of Backbone.js and how it can be used to build dynamic web applications. It discusses the main Backbone components:
- Models represent single data objects and can be validated.
- Collections hold ordered sets of models and can fetch data from the server.
- Views handle the display and interaction of data from models and collections.
- Routers map URLs to functions that control the application flow.
The document then gives an example of using Backbone to build a simple shopping cart application with Products and Cart views, demonstrating how the components work together.
How to Implement Basic Angular Routing and Nested Routing With Params in Angu...Katy Slemon
Here’s a step-by-step guide to developing an Angular application from scratch with Basic Angular Routing and Nested Routing with params in Angular v11.
I presented this lecture to the new SharePoint devs joining our team. As I take on the challenge of Surface v2 development, I felt the urge to share my knowledge of branding SharePoint portals with jQuery for the past 1 year.
The document provides tips for Rails developers when working with designers, suggesting they use consistent naming for models and views, integrate CSS stylesheets and images properly, and use techniques like conditional comments and body classes to target styles for different browsers like Internet Explorer.
This document discusses WordPress plugins and database tables. It covers hooks, which allow plugins to connect functions to events. Hooks are either actions or filters. Database tables in WordPress use a metadata structure, with meta tables containing key-value pairs that provide flexibility. Taxonomies classify terms and allow terms to be associated with posts through term relationships and term taxonomies. Next week's topics will include adding admin menus and handling POST data for plugins.
AngularJs 2.0 introduces components as the fundamental building blocks, replacing directives. The presentation covers getting started with AngularJs 2.0, including dependencies, configuration, components, data binding, services, routing and migration from Angular 1. It emphasizes that Angular 2 is a rewrite built on newer standards to improve performance and reduce opinionation. Migration involves componentizing the application and using an upgrade adapter to support a hybrid Angular 1 and 2 app.
Page Objects Done Right - selenium conference 2014Oren Rubin
The document discusses page object design patterns for test automation. It describes four main steps: 1) Expose the service or page being tested rather than using WebDriver APIs directly in tests. 2) Eliminate random sleeps by adding wait methods. 3) Support different users by overloading methods or using parameters. 4) Initialize page objects using a page factory to avoid duplicating lookup code. It also discusses using coordinators to synchronize tests by waiting for events from the application under test.
This document discusses using WordPress as a backend for building mobile and web applications. It introduces WordPress' REST API which allows accessing WordPress content via HTTP requests. It then outlines how to build a simple mobile-first app called WROPE using the WordPress REST API and the JavaScript library Backbone.js, including setting up models, collections, views and routing to retrieve and display WordPress posts.
The document discusses React.js and JSX. It begins by showing how JSX allows HTML-like syntax to define React components. It then discusses how JSX compiles to JavaScript function calls that produce React elements. The document advocates separating logic and presentation into components. It also covers using props and state in components, routing, two-way data binding, and alternatives to Backbone models like using emitters. Overall, the document introduces React concepts like JSX, components, props, state, and data flow while advocating best practices like separation of concerns.
Паразитируем на React-экосистеме (Angular 4+) / Алексей Охрименко (IPONWEB)Ontico
The document discusses how Angular components can "parasitize" the React ecosystem. It begins by providing code examples of basic Angular component creation. It then explores terminology related to parasitism and parasitoids. Various approaches for communicating between Angular components using services, properties, and Redux are presented. The document also discusses ideas for libraries that could help convert React components to Angular. It covers tools and patterns for state management in Angular like Redux and MobX. Finally, it discusses how Angular components could potentially "parasitize" the React ecosystem in both helpful and harmful ways.
This document provides instructions for creating a simple blog using Django. It includes steps to:
1) Set up the Django project and install necessary apps like the admin interface.
2) Create a blog application with a Post model to store blog posts and configure the admin interface to manage posts.
3) Add templates to display list and detail views of posts and enable pagination for post lists.
4) Create a form to allow adding and editing blog posts from the admin and templates.
5) Provide instructions for deleting posts and include a link to download the full code files.
Learn all the essentials of building Angular 2 applications right here.
https://www.udemy.com/angular-2-training/?couponCode=UANGULAR2
This is a beginner level course aimed at those new to Angular 2 and Typescript. No previous knowledge of either is required before starting this course.
This course combines slides, projects and quizzes in a clear, concise and engaging way to guide you through the core concepts of Angular 2 and Typescript.
You will gain a solid foundation for building real-world applications following best practices and the Angular 2 style guide. This includes how to build components, create shared services, navigate between views, manage data, and managing user and system events.
GDI Seattle - Intro to JavaScript Class 4Heather Rock
This document provides an introduction to beginning JavaScript and jQuery. It covers HTML forms and accessing form values with JavaScript. It also discusses APIs, AJAX requests, JSON, libraries like jQuery, and making requests to GitHub's API using jQuery's AJAX functionality. Code examples are provided for creating forms, handling form submissions, making AJAX requests, and looping through the returned JSON data to output ids.
This workshop conducted by the team member of Inspire Chittagong (Mizanur Rahaman Mizan and Saad Amin). Workshop was in East Delta Univeristy. There was a session relating to the infos and also another one fully focusing on the practical theme development
Over the past two years I have been working at Malmberg to build an amazing new platform. In this presentation I would like to share the lessons we learned using Angular.
Gutenberg sous le capot, modules réutilisablesRiad Benguella
Gutenberg arrive, ça change tout pour ce qui est de la création de contenu dans WordPress. Mais ce que vous ne savez pas c’est que Gutenberg a le potentiel pour changer beaucoup de choses pour les développeurs de plugins et de thèmes WordPress et même à l’extérieur de la communauté WordPress.
De la gestion des données de votre plugin, la gestion des dates, l’internationalisation à l’interface UI, Gutenberg est une mine d’or qui ne demande qu’à être exploitée. Explorons ensemble l’architecture modulaire de Gutenberg et apprenons à réutiliser ses modules pour ses propres projets.
This document provides an overview of the Django web framework. It discusses Django's mission of encouraging rapid development and clean design. It demonstrates how to create a blog application with Django, including generating models, activating the admin interface, defining URLs and views, and using templates to display data. It also briefly compares Django to other frameworks like Ruby on Rails.
The document discusses Handlebars, a templating language for HTML. It can be used to render dynamic HTML views from JSON data sources by using templates with placeholders that are replaced by values from a context object. An example demonstrates creating a template, compiling it, providing a context with sample data, and rendering the template to insert the dynamic HTML into the page. Handlebars allows separation of design and data for model-view-controller applications.
Sara Soueidan: Styling and Animating Scalable Vector Graphics with CSS [CSSCo...Guillaume Kossi
Scalable Vector Graphics, or SVGs, are the new "big thing" in web design today, and for a good reason. With the proliferation of retina screens and high resolution displays, we need to adopt techniques that allow us to serve graphics that look good on all screens in all circumstances, and because SVGs offer resolution-independent, fully scalable and crystal clear graphics, it is safe to say that they are the future graphics format of the web.
In this talk we're going to see how SVGs can be styled in CSS, and how they can be animated using CSS animations and transitions. We're also going to cover "responsifying" SVGs using CSS media queries, and how we can control the size and looks of SVGs allowing them to adapt to different screen sizes. We'll cover a short workflow from a vector graphics editor to a responsive animated graphic on screen.
This document discusses React, a JavaScript library for building user interfaces. It provides an overview of React concepts like components, props, state, lifecycle methods, and the virtual DOM. Components are the basic building blocks and can be composed to build complex UIs. Data flows unidirectionally from parent to child components via props, while state is local and mutable. The virtual DOM allows React to efficiently update the real DOM by comparing component trees.
This document provides instructions for setting up a Django development environment and creating a basic Django project with an app. It covers installing Python and Pipenv, creating a virtual environment, installing Django, generating a project scaffold, creating an app, configuring URLs and templates, making migrations and running the development server. It also discusses Django templates, forms, models, views and generic views at a high level.
This document provides an overview of Backbone.js and how it can be used to build dynamic web applications. It discusses the main Backbone components:
- Models represent single data objects and can be validated.
- Collections hold ordered sets of models and can fetch data from the server.
- Views handle the display and interaction of data from models and collections.
- Routers map URLs to functions that control the application flow.
The document then gives an example of using Backbone to build a simple shopping cart application with Products and Cart views, demonstrating how the components work together.
AngularJS 2.0 aims to improve performance, support modern web standards like ES6, and have an easier programming model compared to AngularJS 1.x. Key changes include dropping controllers and scopes in favor of components as the fundamental building block. Templates will use property and event binding rather than directives. AtScript is a new syntax that adds types, annotations and introspection to ES6 for better development experience.
The document discusses jQuery, a JavaScript library. It provides information on:
- What jQuery is and its main functionality, including DOM scripting, Ajax, user interface effects, and form validation.
- How to get started with jQuery, including downloading the file, adding it to a page via a script tag, and using common selectors like ID, class, and tag name to select elements.
- Common jQuery methods for manipulating elements, like adding and removing classes, traversing the DOM, making GET/POST requests, and loading content via Ajax.
- Ensuring the document is ready before running jQuery code by using the ready function.
So in summary, the document provides an overview
Beginner’s tutorial (part 2) how to integrate redux-saga in react native appKaty Slemon
This tutorial will help to integrate redux-saga & redux-form in React Native app. You can also clone the github repo provided at the end of this guide.
Webpack Encore Symfony Live 2017 San FranciscoRyan Weaver
Ready to write an amazing front-end for your app? There are *so* many great tools, like React, Vue.js, module loaders, Sass, LESS, PostCSS and more. But, they all have one thing in common: you need to configure a *build* system before you write a single line of code! Thankfully, there's Webpack: the leading tool for processing & bundling your JavaScript and CSS. There's just one problem: configuring Webpack is tough and requires a lot of Webpack-specific knowledge. Say hello to Webpack Encore: a library built by Symfony to quickly bootstrap a sophisticated asset setup, complete with minification, SASS processing, automatic versioning, Babel support and *everything* you need to start writing great JavaScript quickly. In this talk, we'll also learn about using JavaScript modules, how to bootstrap a framework (like React) and other important modern practices. Give your assets a huge boost with Webpack Encore!
Similar to Radoslav Stankov - React Refactoring Patterns (20)
'How i came up with my talk' by Yurii Artiukh. OdessaJS'2021OdessaJS Conf
The document describes the process by which someone decided on a topic for their presentation. They initially considered topics like animations or differential equations. After seeing an animation example, they wanted to create one themselves from 0 to 1, but struggled for over a day to get the math right. They eventually landed on an exponential function that achieved the desired animation effect over time. They questioned why they went through so much effort to figure this out.
Олексій Павленко. CONTRACT PROTECTION ON THE FRONTEND SIDE: HOW TO ORGANIZE R...OdessaJS Conf
The document discusses various approaches for performing contract protection on the frontend side such as integration testing, law-driven contract testing, consumer-driven contract testing, and runtime checking. It then focuses on runtime checking, explaining what it is and how it can add an extra step to quality assurance by allowing integration errors to be responded to in real time. Details are provided on Oleksii Pavlenko who is an engineering manager, PhD holder, and former professional basketball player with interests in surfing, snowboarding, and other boardsports.
Андрій Троян. Розробка мікросервісів з NestJS. OdessaJS'2021OdessaJS Conf
This document discusses NestJS, a framework for building Node.js microservices. It introduces microservices and their key characteristics like loose coupling and independent deployment. It then covers how NestJS provides an architecture that allows for highly testable, scalable, and maintainable applications. Specific NestJS features are summarized like modules, controllers, providers, pipes, error handling, and decorators. Finally, it discusses using NestJS for microservices, including different transporters and message styles like request-response and event-based communication.
Олексій Гончар "Використання Electron в розробці корпоративної відео-мессeндж...OdessaJS Conf
This document provides an overview of Electron and its history and principles. It then summarizes the RingCentral MVP platform, including its features and transition to using Electron. Finally, it describes the RingCentral desktop app, its features and technology, and its CI/CD processes. The document contains sections on Electron, the RingCentral MVP platform, and the RingCentral desktop app.
Максим Климишин "Що такого особливого у пропозиції вартості шаблону Micro Fro...OdessaJS Conf
Micro frontends is a design pattern that splits an application into multiple independently deployable frontend applications to reduce dependencies between teams and improve the speed of delivery. This approach can reduce execution and delivery risks like long cycle times and inconsistent user experiences. It allows for more autonomous teams and faster time to market. However, it also introduces some risks around broken user interfaces if components are not built consistently. Adopting a micro frontends approach requires buy-in from engineering leadership as well as change management to shift teams away from old habits.
Павло Галушко. GOOD CODE MYTHS. OdessaJS'2021OdessaJS Conf
The document discusses myths about writing good JavaScript code. Some myths addressed include: that good code is only for aesthetics; that programming is only about writing code; and that principles and patterns from object-oriented programming do not apply to JavaScript. The presentation argues that good code is important for business reasons like maintenance and refactoring costs. It emphasizes writing testable code, following style guides, and applying design principles universally.
'BUILDING ANGULAR APPS WITH NX' by Anastasia NecheporenkoOdessaJS Conf
This document discusses approaches to managing Angular applications, including using multiple repositories versus a monorepository. It notes advantages and disadvantages of each, such as isolation but also hard dependencies with multiple repos, versus easy code sharing but potential messiness with a monorepo. The document then introduces Nrwl Nx as an open-source tool that helps manage monorepos for Angular apps, providing features like dependency graphs, smart rebuilds, and code generators. However, it cautions that using Nx requires following its structure patterns and configurations, and migrating codebases and teams to its approach can also require effort.
'IS THERE JAVASCRIPT ON SWAGGER PLUGINS?' by Dmytro GusevOdessaJS Conf
This document discusses JavaScript plugins for the Swagger API documentation framework. It begins with an overview of Swagger and related tools like swagger-editor. It then covers challenges with customizing Swagger and different approaches tried, like using custom Swagger definitions or closures. The main topics covered are the plugin system architecture, including available React components, Redux state management, and plugin APIs. It asks several questions about how to interact with and extend the plugin system.
'ETHEREUM SMART CONTRACTS ON JS' by Yaroslav DvorovenkoOdessaJS Conf
This document discusses Ethereum, smart contracts, and blockchain technology. It defines Ethereum as a cryptocurrency platform that allows for decentralized services and applications through the use of smart contracts written in the Solidity programming language. Smart contracts are computer programs that automatically execute transactions, actions, and legally relevant events without the need for intermediaries. The document provides examples of how smart contracts could be used for elections, digital currency, and instant money transfers with low fees. It also discusses tools like Ganache, Truffle, and Web3.js that allow for developing, testing, and interacting with smart contracts and decentralized applications.
'MICROFRONTENDS WITH REACT' by Liliia KarpenkoOdessaJS Conf
This document discusses microfrontends architecture. It begins by explaining why an organization may want to use a microfrontends approach, such as when different teams in different locations need to work on the same project simultaneously. It then discusses some of the downsides of a monorepo approach and when a monorepo may be preferable to microfrontends. The document outlines some of the challenges microfrontends can present and why they can also be a good choice. It provides examples of how to divide an app into microfrontends, such as by routes, features, or a combination, and options for using different frameworks within microfrontends like web components, module federation, and iframes. It concludes by discussing testing and development
'Web performance metrics' BY ROMAN SAVITSKYI at OdessaJS'2020OdessaJS Conf
Let's brainstorm web-productivity? It's easy to get lost in different sources - so how to choose them wisely? Main topics: Metrics, best practices, problems and solutions
Вебпродуктивність. Що ще тут розповісти? Всі ми знаємо, що це важливо, як не отримувати таких проблем і до чого це призводить. Але якщо необхідно вирішити проблему серед тонни ресурсів важко обрати потрібний. Моя доповідь не тільки про рішення проблеми, а про находження інструментів та метрик для рішення проблеми. Чому саме ці метрики варто використовувати і як з цим жити. Метрики, практики, проблеми, рішення. Які різні поняття, а насправді це цепочки, які нам разом необхідно виставити в логічний ряд. Запрошую Вас побрейнштормити разом!
'JavaScript was invented in Odessa' by DMITRIY GUSEV at OdessaJS'2020OdessaJS Conf
JavaScript is wild and dangerous. I’ve been using it for years and time to time faced with the same issues.
Also being an interviewer I talked to lots of people.
And most of them able to answer the questions correctly, but can not explain why it works so. In my talk, I prepared examples of ‘what is wrong with JS’ and explained why it works so based on ECMA specifications.
'Why svelte' by BORYS MOHYLA at OdessaJS'2020OdessaJS Conf
I'll tell you why I chose Svelte. What I like about Svelte and what not. Let's talk about when to use Svelte in production and why.
The technology shows new possibilities of the composition of high-level abstractions and high-performance low-level code.
'Effective node.js development' by Viktor Turskyi at OdessaJS'2020OdessaJS Conf
How to develop NodeJS apps effectively? I will tell you all details and share his personal experience on the whole process: from the very start and up to the production stage.
You will also learn more about Docker, SDLC and 12 Factor App. Save the date!
Digital Banking in the Cloud: How Citizens Bank Unlocked Their MainframePrecisely
Inconsistent user experience and siloed data, high costs, and changing customer expectations – Citizens Bank was experiencing these challenges while it was attempting to deliver a superior digital banking experience for its clients. Its core banking applications run on the mainframe and Citizens was using legacy utilities to get the critical mainframe data to feed customer-facing channels, like call centers, web, and mobile. Ultimately, this led to higher operating costs (MIPS), delayed response times, and longer time to market.
Ever-changing customer expectations demand more modern digital experiences, and the bank needed to find a solution that could provide real-time data to its customer channels with low latency and operating costs. Join this session to learn how Citizens is leveraging Precisely to replicate mainframe data to its customer channels and deliver on their “modern digital bank” experiences.
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfChart Kalyan
A Mix Chart displays historical data of numbers in a graphical or tabular form. The Kalyan Rajdhani Mix Chart specifically shows the results of a sequence of numbers over different periods.
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor IvaniukFwdays
At this talk we will discuss DDoS protection tools and best practices, discuss network architectures and what AWS has to offer. Also, we will look into one of the largest DDoS attacks on Ukrainian infrastructure that happened in February 2022. We'll see, what techniques helped to keep the web resources available for Ukrainians and how AWS improved DDoS protection for all customers based on Ukraine experience
AppSec PNW: Android and iOS Application Security with MobSFAjin Abraham
Mobile Security Framework - MobSF is a free and open source automated mobile application security testing environment designed to help security engineers, researchers, developers, and penetration testers to identify security vulnerabilities, malicious behaviours and privacy concerns in mobile applications using static and dynamic analysis. It supports all the popular mobile application binaries and source code formats built for Android and iOS devices. In addition to automated security assessment, it also offers an interactive testing environment to build and execute scenario based test/fuzz cases against the application.
This talk covers:
Using MobSF for static analysis of mobile applications.
Interactive dynamic security assessment of Android and iOS applications.
Solving Mobile app CTF challenges.
Reverse engineering and runtime analysis of Mobile malware.
How to shift left and integrate MobSF/mobsfscan SAST and DAST in your build pipeline.
For the full video of this presentation, please visit: https://www.edge-ai-vision.com/2024/06/how-axelera-ai-uses-digital-compute-in-memory-to-deliver-fast-and-energy-efficient-computer-vision-a-presentation-from-axelera-ai/
Bram Verhoef, Head of Machine Learning at Axelera AI, presents the “How Axelera AI Uses Digital Compute-in-memory to Deliver Fast and Energy-efficient Computer Vision” tutorial at the May 2024 Embedded Vision Summit.
As artificial intelligence inference transitions from cloud environments to edge locations, computer vision applications achieve heightened responsiveness, reliability and privacy. This migration, however, introduces the challenge of operating within the stringent confines of resource constraints typical at the edge, including small form factors, low energy budgets and diminished memory and computational capacities. Axelera AI addresses these challenges through an innovative approach of performing digital computations within memory itself. This technique facilitates the realization of high-performance, energy-efficient and cost-effective computer vision capabilities at the thin and thick edge, extending the frontier of what is achievable with current technologies.
In this presentation, Verhoef unveils his company’s pioneering chip technology and demonstrates its capacity to deliver exceptional frames-per-second performance across a range of standard computer vision networks typical of applications in security, surveillance and the industrial sector. This shows that advanced computer vision can be accessible and efficient, even at the very edge of our technological ecosystem.
Fueling AI with Great Data with Airbyte WebinarZilliz
This talk will focus on how to collect data from a variety of sources, leveraging this data for RAG and other GenAI use cases, and finally charting your course to productionalization.
Driving Business Innovation: Latest Generative AI Advancements & Success StorySafe Software
Are you ready to revolutionize how you handle data? Join us for a webinar where we’ll bring you up to speed with the latest advancements in Generative AI technology and discover how leveraging FME with tools from giants like Google Gemini, Amazon, and Microsoft OpenAI can supercharge your workflow efficiency.
During the hour, we’ll take you through:
Guest Speaker Segment with Hannah Barrington: Dive into the world of dynamic real estate marketing with Hannah, the Marketing Manager at Workspace Group. Hear firsthand how their team generates engaging descriptions for thousands of office units by integrating diverse data sources—from PDF floorplans to web pages—using FME transformers, like OpenAIVisionConnector and AnthropicVisionConnector. This use case will show you how GenAI can streamline content creation for marketing across the board.
Ollama Use Case: Learn how Scenario Specialist Dmitri Bagh has utilized Ollama within FME to input data, create custom models, and enhance security protocols. This segment will include demos to illustrate the full capabilities of FME in AI-driven processes.
Custom AI Models: Discover how to leverage FME to build personalized AI models using your data. Whether it’s populating a model with local data for added security or integrating public AI tools, find out how FME facilitates a versatile and secure approach to AI.
We’ll wrap up with a live Q&A session where you can engage with our experts on your specific use cases, and learn more about optimizing your data workflows with AI.
This webinar is ideal for professionals seeking to harness the power of AI within their data management systems while ensuring high levels of customization and security. Whether you're a novice or an expert, gain actionable insights and strategies to elevate your data processes. Join us to see how FME and AI can revolutionize how you work with data!
Discover top-tier mobile app development services, offering innovative solutions for iOS and Android. Enhance your business with custom, user-friendly mobile applications.
Introduction of Cybersecurity with OSS at Code Europe 2024Hiroshi SHIBATA
I develop the Ruby programming language, RubyGems, and Bundler, which are package managers for Ruby. Today, I will introduce how to enhance the security of your application using open-source software (OSS) examples from Ruby and RubyGems.
The first topic is CVE (Common Vulnerabilities and Exposures). I have published CVEs many times. But what exactly is a CVE? I'll provide a basic understanding of CVEs and explain how to detect and handle vulnerabilities in OSS.
Next, let's discuss package managers. Package managers play a critical role in the OSS ecosystem. I'll explain how to manage library dependencies in your application.
I'll share insights into how the Ruby and RubyGems core team works to keep our ecosystem safe. By the end of this talk, you'll have a better understanding of how to safeguard your code.
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...Jason Yip
The typical problem in product engineering is not bad strategy, so much as “no strategy”. This leads to confusion, lack of motivation, and incoherent action. The next time you look for a strategy and find an empty space, instead of waiting for it to be filled, I will show you how to fill it in yourself. If you’re wrong, it forces a correction. If you’re right, it helps create focus. I’ll share how I’ve approached this in the past, both what works and lessons for what didn’t work so well.
Northern Engraving | Nameplate Manufacturing Process - 2024Northern Engraving
Manufacturing custom quality metal nameplates and badges involves several standard operations. Processes include sheet prep, lithography, screening, coating, punch press and inspection. All decoration is completed in the flat sheet with adhesive and tooling operations following. The possibilities for creating unique durable nameplates are endless. How will you create your brand identity? We can help!
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...Alex Pruden
Folding is a recent technique for building efficient recursive SNARKs. Several elegant folding protocols have been proposed, such as Nova, Supernova, Hypernova, Protostar, and others. However, all of them rely on an additively homomorphic commitment scheme based on discrete log, and are therefore not post-quantum secure. In this work we present LatticeFold, the first lattice-based folding protocol based on the Module SIS problem. This folding protocol naturally leads to an efficient recursive lattice-based SNARK and an efficient PCD scheme. LatticeFold supports folding low-degree relations, such as R1CS, as well as high-degree relations, such as CCS. The key challenge is to construct a secure folding protocol that works with the Ajtai commitment scheme. The difficulty, is ensuring that extracted witnesses are low norm through many rounds of folding. We present a novel technique using the sumcheck protocol to ensure that extracted witnesses are always low norm no matter how many rounds of folding are used. Our evaluation of the final proof system suggests that it is as performant as Hypernova, while providing post-quantum security.
Paper Link: https://eprint.iacr.org/2024/257
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.
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUpanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-notes-und-domino-lizenzkostenreduzierung-in-der-welt-von-dlau/
DLAU und die Lizenzen nach dem CCB- und CCX-Modell sind für viele in der HCL-Community seit letztem Jahr ein heißes Thema. Als Notes- oder Domino-Kunde haben Sie vielleicht mit unerwartet hohen Benutzerzahlen und Lizenzgebühren zu kämpfen. Sie fragen sich vielleicht, wie diese neue Art der Lizenzierung funktioniert und welchen Nutzen sie Ihnen bringt. Vor allem wollen Sie sicherlich Ihr Budget einhalten und Kosten sparen, wo immer möglich. Das verstehen wir und wir möchten Ihnen dabei helfen!
Wir erklären Ihnen, wie Sie häufige Konfigurationsprobleme lösen können, die dazu führen können, dass mehr Benutzer gezählt werden als nötig, und wie Sie überflüssige oder ungenutzte Konten identifizieren und entfernen können, um Geld zu sparen. Es gibt auch einige Ansätze, die zu unnötigen Ausgaben führen können, z. B. wenn ein Personendokument anstelle eines Mail-Ins für geteilte Mailboxen verwendet wird. Wir zeigen Ihnen solche Fälle und deren Lösungen. Und natürlich erklären wir Ihnen das neue Lizenzmodell.
Nehmen Sie an diesem Webinar teil, bei dem HCL-Ambassador Marc Thomas und Gastredner Franz Walder Ihnen diese neue Welt näherbringen. Es vermittelt Ihnen die Tools und das Know-how, um den Überblick zu bewahren. Sie werden in der Lage sein, Ihre Kosten durch eine optimierte Domino-Konfiguration zu reduzieren und auch in Zukunft gering zu halten.
Diese Themen werden behandelt
- Reduzierung der Lizenzkosten durch Auffinden und Beheben von Fehlkonfigurationen und überflüssigen Konten
- Wie funktionieren CCB- und CCX-Lizenzen wirklich?
- Verstehen des DLAU-Tools und wie man es am besten nutzt
- Tipps für häufige Problembereiche, wie z. B. Team-Postfächer, Funktions-/Testbenutzer usw.
- Praxisbeispiele und Best Practices zum sofortigen Umsetzen
Essentials of Automations: Exploring Attributes & Automation ParametersSafe Software
Building automations in FME Flow can save time, money, and help businesses scale by eliminating data silos and providing data to stakeholders in real-time. One essential component to orchestrating complex automations is the use of attributes & automation parameters (both formerly known as “keys”). In fact, it’s unlikely you’ll ever build an Automation without using these components, but what exactly are they?
Attributes & automation parameters enable the automation author to pass data values from one automation component to the next. During this webinar, our FME Flow Specialists will cover leveraging the three types of these output attributes & parameters in FME Flow: Event, Custom, and Automation. As a bonus, they’ll also be making use of the Split-Merge Block functionality.
You’ll leave this webinar with a better understanding of how to maximize the potential of automations by making use of attributes & automation parameters, with the ultimate goal of setting your enterprise integration workflows up on autopilot.
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.
7. early 2014 jQuery spaghetti
October 2014 Backbone
February 2015 React & Rails
May 2015 custom Flux
8. early 2014 jQuery spaghetti
October 2014 Backbone
February 2015 React & Rails
May 2015 custom Flux
December 2015 Redux
9. early 2014 jQuery spaghetti
October 2014 Backbone
February 2015 React & Rails
May 2015 custom Flux
December 2015 Redux
January 2016 React-Router
10. early 2014 jQuery spaghetti
October 2014 Backbone
February 2015 React & Rails
May 2015 custom Flux
December 2015 Redux
January 2016 React-Router
April 2016 Redux Ducks
11. early 2014 jQuery spaghetti
October 2014 Backbone
February 2015 React & Rails
May 2015 custom Flux
December 2015 Redux
January 2016 React-Router
April 2016 Redux Ducks
Febuary 2017 GraphQL
12. October 2014 Backbone
February 2015 React & Rails
May 2015 custom Flux
December 2015 Redux
January 2016 React-Router
April 2016 Redux Ducks
Febuary 2017 GraphQL
13. February 2015 React & Rails
May 2015 custom Flux
December 2015 Redux
January 2016 React-Router
April 2016 Redux Ducks
Febuary 2017 GraphQL
15. early 2014 jQuery spaghetti
October 2014 Backbone
February 2015 React & Rails
May 2015 custom Flux
December 2015 Redux
January 2016 React-Router
April 2016 Redux Ducks
Febuary 2017 GraphQL
36. import * as React from "react";
import Font from "components/Font";
<Font.Text>text</Font.Text>
// -> <span class="text">text</span>
37. import * as React from "react";
import Font from "components/Font";
<Font.Text>text</Font.Text>
// -> <span class="text">text</span>
<Font.Text component="p">text</Font.Text>
// -> <p class="text">text</p>
38. import * as React from "react";
import Font from "components/Font";
<Font.Text>text</Font.Text>
// -> <span class="text">text</span>
<Font.Text component="p">text</Font.Text>
// -> <p class="text">text</p>
<Font.Text component={Link} to="/page">text</Font.Text>
// -> <a class="text" href="/page">text</a>
39. import * as React from "react";
import Font from "components/Font";
<Font.Text>text</Font.Text>
// -> <span class="text">text</span>
<Font.Text component="p">text</Font.Text>
// -> <p class="text">text</p>
<Font.Text component={Link} to="/page">text</Font.Text>
// -> <a class="text" href="/page">text</a>
Pass custom component as prop
40.
Pass custom component as prop
import * as React from "react";
import styles from "./styles.css";
export function Text({ component, children, ...props }) {
Component = component || "span";
return (
<Component className={styles.text} {...props}>
{children}
</Component>
);
}
components/Font/index.js
41.
Pass custom component as prop
import * as React from "react";
import styles from "./styles.css";
export function Text({ component, children, ...props }) {
Component = component || "span";
return (
<Component className={styles.text} {...props}>
{children}
</Component>
);
}
components/Font/index.js
%
42. import * as React from "react";
import styles from "./styles.css";
export function Text({ component, ...props }) {
Component = component || "span";
return <Component className={styles.text} {...props} />;
}
Pass custom component as prop
&
components/Font/index.js
43. import * as React from "react";
import Font from "components/Font";
<Font.Text>text</Font.Text>
// -> <span class="text">Text</span>
44. import * as React from "react";
import Font from "components/Font";
import styles from "./styles.css";
<Font.Text className={styles.custom}>text</Font.Text>
// -> <span class="text custom">text</span>
Pass extra class name
45. import * as React from "react";
import styles from "./styles.css";
import classNames from "classnames";
export function Text({ component, className, ...props }) {
Component = component || "span";
return <Component className={className(styles.text, className)} {...pro
}
Pass extra class name
components/Font/index.js
78. /* @flow */
import classNames from "classnames";
import * as React from "react";
import styles from "./styles.css";
import { formContextTypes, getErrorMessage } from "./utils";
import type { FormContextType } from "./types";
type Props = {
name: string,
children?: Function
};
export default function ErrorMessage(
{ name, children }: Props,
{ form }: FormContextType
) {
const message = getErrorMessage(form, name);
if (!message) {
return null;
Function as props
components/Form/ErrorMessage/index.js
79. children?: Function
};
export default function ErrorMessage(
{ name, children }: Props,
{ form }: FormContextType
) {
const message = getErrorMessage(form, name);
if (!message) {
return null;
}
if (typeof children === "function") {
return children(message) || null;
}
return <Font.Text color="error">{message}</Font.Text>;
}
ErrorMessage.defaultProps = { name: "base"};
ErrorMessage.contextTypes = formContextTypes;
Function as props
components/Form/ErrorMessage/index.js
81. /* @flow */
import * as React from "react";
import moment from "moment";
import type { Moment } from "types/Moment";
type Props = {
children: (time: Moment) => any
};
type State = {
time: Moment
};
export default class Clock extends React.Component<Props, State> {
state = { time: moment() };
intervalId = null;
componentDidMount() {
this.updateTime();
Function as props
components/Clock/index.js
82. time: Moment
};
export default class Clock extends React.Component<Props, State> {
state = { time: moment() };
intervalId = null;
componentDidMount() {
this.updateTime();
if (!this.intervalId) {
this.intervalId = setInterval(this.updateTime, 1000);
}
}
componentWillUnmount() {
if (this.intervalId) {
clearInterval(this.intervalId);
this.intervalId = null;
}
}
updateTime = () => {
Function as props
components/Clock/index.js
104. /* @flow */
import * as React from "react";
import Font from "components/Font";
import Link from "components/Link";
import TopicFollowButton from "components/TopicFollowButton";
import TopicImage from "components/TopicImage";
import classNames from "classNames";
import paths from "paths";
import styles from "./styles.css";
import type { TopicItemFragament as Topic } from "graphql/schema.js";
type Props = {
topic: Topic,
className?: string
};
export default function TopicItem({ topic, className }: Props) {
return (
<div className={className(styles.item, className)}>
<Link to={paths.topics.show(topic)} className={styles.image}>components/TopicItem/index.js
Domain component