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.
Con la versione 7 di Drupal è stato introdotto il concetto di Entity, poi evoluto con la versione 8, utilizzato come base di buona parte degli elementi core (nodi, tassonomie, utenti, ...), ma - soprattutto - è stata data la possibilità di costruire entity custom. L'utilizzo di queste apre le possibilità di personalizzazione dello strumento ad un livello superiore velocizzando notevolmente lo sviluppo.
Verranno mostrate le potenzialità nell'uso delle Entity custom e le integrazioni possibili.
Accessing Data Through Hibernate; What DBAs Should Tell Developers and Vice V...Marco Tusa
Hibernate is an object-relational mapping tool that allows developers to access and manage relational database data using object-oriented programming. It maps database tables to Java classes and rows to objects. The document discusses how Hibernate works, how it interacts with databases like MySQL, and what developers and DBAs need to know to effectively use Hibernate for data access and management while optimizing database performance.
How to write bad code in redux (ReactNext 2018)500Tech
We've been using Redux since it just started, and we learned a lot from dozens of projects, big and small.
This is a taste of a collection of tools and best practices that work great for us.
The document provides an overview and agenda for a React.js training covering key concepts like components, state, props, lifecycle methods, and hooks. It also discusses React rendering, JSX syntax, and the use of Redux for application state management. The training covers React core concepts in the first half and introduces Redux and hooks in the second half, ending with a discussion of popular React libraries and tools.
What are windows object? Are global variable some way part of window object? What are window timer methods? What is the difference in setTimeOut and SetInterval? Which is better? Things which we all should know before using `setTimeout` and `setInterval`.
If you have all these question then you are at right place :)
#kiprosh
This presentation will introduce AJAX in Grails through the GrailsUI plugin. We'll start with the core concepts behind the plugin and give examples of the most widely used and interesting widgets GrailsUI
provides.
Some examples will include methods of interacting with the widgets and handling events. We will also talk about how to provide proper JSON data to the widgets from the server.
The document discusses using the CGI::Prototype framework to manage the complexity of web application flow by defining states as namespaces and handling each part of the request-response process in a modular way. It provides an overview of how CGI::Prototype handles the flow through subclasses that represent each state, and allows changing behavior through accessors and templates. Flexibility comes from being able to change actions and templates without changing any code.
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.
Con la versione 7 di Drupal è stato introdotto il concetto di Entity, poi evoluto con la versione 8, utilizzato come base di buona parte degli elementi core (nodi, tassonomie, utenti, ...), ma - soprattutto - è stata data la possibilità di costruire entity custom. L'utilizzo di queste apre le possibilità di personalizzazione dello strumento ad un livello superiore velocizzando notevolmente lo sviluppo.
Verranno mostrate le potenzialità nell'uso delle Entity custom e le integrazioni possibili.
Accessing Data Through Hibernate; What DBAs Should Tell Developers and Vice V...Marco Tusa
Hibernate is an object-relational mapping tool that allows developers to access and manage relational database data using object-oriented programming. It maps database tables to Java classes and rows to objects. The document discusses how Hibernate works, how it interacts with databases like MySQL, and what developers and DBAs need to know to effectively use Hibernate for data access and management while optimizing database performance.
How to write bad code in redux (ReactNext 2018)500Tech
We've been using Redux since it just started, and we learned a lot from dozens of projects, big and small.
This is a taste of a collection of tools and best practices that work great for us.
The document provides an overview and agenda for a React.js training covering key concepts like components, state, props, lifecycle methods, and hooks. It also discusses React rendering, JSX syntax, and the use of Redux for application state management. The training covers React core concepts in the first half and introduces Redux and hooks in the second half, ending with a discussion of popular React libraries and tools.
What are windows object? Are global variable some way part of window object? What are window timer methods? What is the difference in setTimeOut and SetInterval? Which is better? Things which we all should know before using `setTimeout` and `setInterval`.
If you have all these question then you are at right place :)
#kiprosh
This presentation will introduce AJAX in Grails through the GrailsUI plugin. We'll start with the core concepts behind the plugin and give examples of the most widely used and interesting widgets GrailsUI
provides.
Some examples will include methods of interacting with the widgets and handling events. We will also talk about how to provide proper JSON data to the widgets from the server.
The document discusses using the CGI::Prototype framework to manage the complexity of web application flow by defining states as namespaces and handling each part of the request-response process in a modular way. It provides an overview of how CGI::Prototype handles the flow through subclasses that represent each state, and allows changing behavior through accessors and templates. Flexibility comes from being able to change actions and templates without changing any code.
Going with style: Themes and apps for Magento GoX.commerce
Magento Go, our SaaS solution, provides merchants with capabilities to customize their stores with different themes and to integrate applications for valuable functionality. We will provide examples of the best methods and approaches for customizing storefronts with different themes and layouts, as well as how to integrate apps into Magento Go stores.
The document discusses why object-oriented jQuery code should be avoided. It recommends using an event-driven approach instead, where components trigger events to communicate rather than calling methods directly. This fits more cleanly with asynchronous requirements and how users typically interact with elements like autocompleters. The document provides an example of building tab functionality in an event-driven way by binding to click and keypress events that trigger a tabactivate event.
The document discusses dependency injection (DI) in Magento. It describes the traditional "pull" approach used in Magento where classes directly instantiate dependencies, leading to tightly coupled code. It then introduces the "push" approach using a DI container, where dependencies are injected into classes rather than pulled, reducing coupling. It provides examples of how Magento's object manager implements DI to improve testability and flexibility of classes.
ONE MORE TIME ABOUT CODE STANDARDS AND BEST PRACTICESDrupalCamp Kyiv
In agile world when requirements changes faster than tasks got "done" status, we forced to make fast solutions that will work here and now. Being under pressure and in strict dead lines it easy to ignore code standards, "drupal way", and best practices that could be found in top Drupal sites. Tools and tips to keep your code clean.
https://drupalcampkyiv.org/node/37
Most developers have some experience with jQuery, but few of them understand the principles of Javascript and how to write and debug Javascript code. This presentation will cover best practices for writing object oriented Javascript, benchmarking, and debugging.
"Android Data Binding в массы" Михаил АнохинFwdays
Рассмотрим что это такое, как работает, какие возможности предоставляет библиотека, как обрабатываются события внутри бибилиотеки и фрагменты кода сгенерированные для биндингов.
Также узнаем как добавить библиотеку в проект и на практических примерах оценим ее достоинства и недостатки при использовании в проекте.
Доклад включает в себя рассмотрение ключевых особенностей библиотеки. Также описывает обработку событий внутри библиотеки и в сформированных биндингах.
Дополнительно рассматривается создание собственных компонентов, расширяющих возможности элементов интерфейса, и в конце будет уделено отдельное внимание реализации двустороннего биндинга.
This document discusses various jQuery secrets including:
1. Utilities for saving and removing state from DOM elements using jQuery.data() and jQuery.removeData().
2. Hidden events like getData, setData, and changeData that are emitted when data is read, set, or changed on an element.
3. Extending jQuery with custom functions, properties, and AJAX shortcuts.
4. Binding custom events and namespaces, self-defined animation speeds, and extending jQuery plugins.
The document discusses dependency injection and inversion of control principles in PHP applications. It provides examples of using global variables, Zend Registry, and Zend Application to manage dependencies. It also summarizes various PHP dependency injection containers and how they can be used to configure services and their dependencies. The document advocates designing applications with loose coupling, separation of concerns, and configuring via configuration files rather than code for improved maintainability.
The document discusses Vaadin's data model and JPAContainer component. It describes how the data model uses properties, items, and containers to bind user interface components to data. JPAContainer allows connecting Vaadin components directly to persistent model objects stored in a database using the Java Persistence API. It provides examples of using JPAContainer with a sample address book application to display and edit data from a database in tables and forms.
Would you like to make your Android UI code cleaner and more reactive? Android data binding can help. In this talk you’ll learn everything you need to know about data binding, including why it’s so powerful and how to use it effectively. If you haven’t tried data binding in the past, that’s okay! We’ll start with the basics, assuming no prior knowledge and slowly move into more advanced topics, such as 2-way binding, binding adapters, converters, best practices and common pitfalls to avoid.
Drupal node access system & AUL 7.x.-2.x.
Topic was presented at Drupal-Austria Vienna Meetup May 2014.
http://www.meetup.com/Drupal-Austria/events/181216712/
JQuery is a JavaScript library that allows developers to easily manipulate HTML, CSS, and events. A JQuery plugin extends JQuery's functionality by adding new methods to its prototype object. Plugins provide reusable code and save development time. A plugin consists of a function, options, callbacks, and the ability to chain methods. The 'this' keyword refers to DOM elements or JQuery objects depending on the context.
The document discusses ViewModels and testing in Android development. It explains that ViewModels allow data to survive configuration changes and provide data for UI components. ViewModels can help avoid memory leaks, solve lifecycle challenges, and share data between fragments. The document also discusses how to write unit tests for Presenters and ViewModels using tools like Mockito to verify behavior and data values. It emphasizes that testing is important for documentation and allowing safe refactoring of code.
This document discusses using Hibernate ORM for object-relational mapping in Java. It describes what ORM is and how Hibernate provides a mapping specification to define associations between objects and database tables. The mapping is defined declaratively in XML and Hibernate supports generation of database schemas and Java POJOs from these mappings. Examples are provided of common association types like one-to-one, one-to-many, and many-to-many defined between mapped classes. Bidirectional and unidirectional mappings are demonstrated. The conclusions emphasize that the mapping specification defines the semantics of associations and allows modeling in a declarative way that Hibernate can use for code generation tasks.
The document discusses handling cookies and sessions in Flask. It shows how to check for a cookie, set cookies, and access cookie values. It also demonstrates how to get and set values in the session, such as the user ID. The document defines two database models - the User model with a relationship to Message, and the Message model with a foreign key reference to User. It also shows decorators for request handling.
This document provides examples of using various sqlsrv PHP functions including sqlsrv_begin_transaction(), sqlsrv_cancel(), sqlsrv_client_info(), sqlsrv_close(), and sqlsrv_commit(). The examples show connecting to a SQL Server database, executing queries within transactions, retrieving client information, closing connections, and committing or rolling back transactions based on query results.
Backbone.js is a JavaScript framework that aims to solve issues with messy JavaScript code by implementing an MVC pattern and object-oriented principles, providing structure through core concepts like Models for data storage, Collections for grouping Models, and Views for rendering display logic, as well as a Router for navigation. It is lightweight at only 6kb and supports RESTful JSON APIs and event-driven programming.
This document shows how to set up a Flask application with SQLAlchemy to create a database with a Message model and table. It includes code to install Flask-SQLAlchemy, define the Message model class, create the database, add a message, and query for messages. It also demonstrates using Werkzeug to hash and check passwords when authenticating users.
This document discusses using Gravity Forms in WordPress and provides resources for additional information. It describes checking a database table and form validation, adding a default field value using a filter, and dynamically changing the notification email recipient. Links are included to the Gravity Forms documentation, download page, and plugins for custom post types and CSS styling.
This document provides an overview of the basic components and new features of Zend Framework 2. Some key points include:
- ZF2 was started in 2010 and is currently in beta with regular releases following a "Gmail-style" cycle. It is developed on GitHub without a CLA.
- ZF2 aims to provide a modern, fast web framework that solves problems with ZF1 by being more flexible, improving performance, and utilizing PHP 5.3 features.
- New components include a modular system where each module solves a specific problem, and an event manager for aspect-oriented programming and attaching listeners to application events.
Going with style: Themes and apps for Magento GoX.commerce
Magento Go, our SaaS solution, provides merchants with capabilities to customize their stores with different themes and to integrate applications for valuable functionality. We will provide examples of the best methods and approaches for customizing storefronts with different themes and layouts, as well as how to integrate apps into Magento Go stores.
The document discusses why object-oriented jQuery code should be avoided. It recommends using an event-driven approach instead, where components trigger events to communicate rather than calling methods directly. This fits more cleanly with asynchronous requirements and how users typically interact with elements like autocompleters. The document provides an example of building tab functionality in an event-driven way by binding to click and keypress events that trigger a tabactivate event.
The document discusses dependency injection (DI) in Magento. It describes the traditional "pull" approach used in Magento where classes directly instantiate dependencies, leading to tightly coupled code. It then introduces the "push" approach using a DI container, where dependencies are injected into classes rather than pulled, reducing coupling. It provides examples of how Magento's object manager implements DI to improve testability and flexibility of classes.
ONE MORE TIME ABOUT CODE STANDARDS AND BEST PRACTICESDrupalCamp Kyiv
In agile world when requirements changes faster than tasks got "done" status, we forced to make fast solutions that will work here and now. Being under pressure and in strict dead lines it easy to ignore code standards, "drupal way", and best practices that could be found in top Drupal sites. Tools and tips to keep your code clean.
https://drupalcampkyiv.org/node/37
Most developers have some experience with jQuery, but few of them understand the principles of Javascript and how to write and debug Javascript code. This presentation will cover best practices for writing object oriented Javascript, benchmarking, and debugging.
"Android Data Binding в массы" Михаил АнохинFwdays
Рассмотрим что это такое, как работает, какие возможности предоставляет библиотека, как обрабатываются события внутри бибилиотеки и фрагменты кода сгенерированные для биндингов.
Также узнаем как добавить библиотеку в проект и на практических примерах оценим ее достоинства и недостатки при использовании в проекте.
Доклад включает в себя рассмотрение ключевых особенностей библиотеки. Также описывает обработку событий внутри библиотеки и в сформированных биндингах.
Дополнительно рассматривается создание собственных компонентов, расширяющих возможности элементов интерфейса, и в конце будет уделено отдельное внимание реализации двустороннего биндинга.
This document discusses various jQuery secrets including:
1. Utilities for saving and removing state from DOM elements using jQuery.data() and jQuery.removeData().
2. Hidden events like getData, setData, and changeData that are emitted when data is read, set, or changed on an element.
3. Extending jQuery with custom functions, properties, and AJAX shortcuts.
4. Binding custom events and namespaces, self-defined animation speeds, and extending jQuery plugins.
The document discusses dependency injection and inversion of control principles in PHP applications. It provides examples of using global variables, Zend Registry, and Zend Application to manage dependencies. It also summarizes various PHP dependency injection containers and how they can be used to configure services and their dependencies. The document advocates designing applications with loose coupling, separation of concerns, and configuring via configuration files rather than code for improved maintainability.
The document discusses Vaadin's data model and JPAContainer component. It describes how the data model uses properties, items, and containers to bind user interface components to data. JPAContainer allows connecting Vaadin components directly to persistent model objects stored in a database using the Java Persistence API. It provides examples of using JPAContainer with a sample address book application to display and edit data from a database in tables and forms.
Would you like to make your Android UI code cleaner and more reactive? Android data binding can help. In this talk you’ll learn everything you need to know about data binding, including why it’s so powerful and how to use it effectively. If you haven’t tried data binding in the past, that’s okay! We’ll start with the basics, assuming no prior knowledge and slowly move into more advanced topics, such as 2-way binding, binding adapters, converters, best practices and common pitfalls to avoid.
Drupal node access system & AUL 7.x.-2.x.
Topic was presented at Drupal-Austria Vienna Meetup May 2014.
http://www.meetup.com/Drupal-Austria/events/181216712/
JQuery is a JavaScript library that allows developers to easily manipulate HTML, CSS, and events. A JQuery plugin extends JQuery's functionality by adding new methods to its prototype object. Plugins provide reusable code and save development time. A plugin consists of a function, options, callbacks, and the ability to chain methods. The 'this' keyword refers to DOM elements or JQuery objects depending on the context.
The document discusses ViewModels and testing in Android development. It explains that ViewModels allow data to survive configuration changes and provide data for UI components. ViewModels can help avoid memory leaks, solve lifecycle challenges, and share data between fragments. The document also discusses how to write unit tests for Presenters and ViewModels using tools like Mockito to verify behavior and data values. It emphasizes that testing is important for documentation and allowing safe refactoring of code.
This document discusses using Hibernate ORM for object-relational mapping in Java. It describes what ORM is and how Hibernate provides a mapping specification to define associations between objects and database tables. The mapping is defined declaratively in XML and Hibernate supports generation of database schemas and Java POJOs from these mappings. Examples are provided of common association types like one-to-one, one-to-many, and many-to-many defined between mapped classes. Bidirectional and unidirectional mappings are demonstrated. The conclusions emphasize that the mapping specification defines the semantics of associations and allows modeling in a declarative way that Hibernate can use for code generation tasks.
The document discusses handling cookies and sessions in Flask. It shows how to check for a cookie, set cookies, and access cookie values. It also demonstrates how to get and set values in the session, such as the user ID. The document defines two database models - the User model with a relationship to Message, and the Message model with a foreign key reference to User. It also shows decorators for request handling.
This document provides examples of using various sqlsrv PHP functions including sqlsrv_begin_transaction(), sqlsrv_cancel(), sqlsrv_client_info(), sqlsrv_close(), and sqlsrv_commit(). The examples show connecting to a SQL Server database, executing queries within transactions, retrieving client information, closing connections, and committing or rolling back transactions based on query results.
Backbone.js is a JavaScript framework that aims to solve issues with messy JavaScript code by implementing an MVC pattern and object-oriented principles, providing structure through core concepts like Models for data storage, Collections for grouping Models, and Views for rendering display logic, as well as a Router for navigation. It is lightweight at only 6kb and supports RESTful JSON APIs and event-driven programming.
This document shows how to set up a Flask application with SQLAlchemy to create a database with a Message model and table. It includes code to install Flask-SQLAlchemy, define the Message model class, create the database, add a message, and query for messages. It also demonstrates using Werkzeug to hash and check passwords when authenticating users.
This document discusses using Gravity Forms in WordPress and provides resources for additional information. It describes checking a database table and form validation, adding a default field value using a filter, and dynamically changing the notification email recipient. Links are included to the Gravity Forms documentation, download page, and plugins for custom post types and CSS styling.
This document provides an overview of the basic components and new features of Zend Framework 2. Some key points include:
- ZF2 was started in 2010 and is currently in beta with regular releases following a "Gmail-style" cycle. It is developed on GitHub without a CLA.
- ZF2 aims to provide a modern, fast web framework that solves problems with ZF1 by being more flexible, improving performance, and utilizing PHP 5.3 features.
- New components include a modular system where each module solves a specific problem, and an event manager for aspect-oriented programming and attaching listeners to application events.
This document provides an overview of key differences between Zend Framework 1 and Zend Framework 2. It discusses changes to namespaces, controllers, services, routing, views, database adapters, forms, and other areas. Code examples are given to illustrate how concepts are implemented in ZF1 versus ZF2, such as using namespaces, dependency injection, and table gateways. The document aims to help ZF1 developers get started with ZF2.
ASP.NET MVC provides separation of concerns, extensibility, and testability compared to other frameworks. However, it has a steeper learning curve and is more complex. Model binding maps form and query string values to model properties. Data annotations provide validation attributes and metadata. Views are rendered using Razor syntax which allows mixing HTML and C# code.
Mike Bartlett and Andrew Newdigate, founders of Gitter, discuss lessons learned building and scaling a realtime web application with the Marionette NY Community.
ASP.NET MVC provides separation of concerns, extensibility, and testability advantages compared to other frameworks. It has a learning curve and is more complex. The MVC pattern uses models to manage data and business logic, views for presentation, and controllers to handle user input and response. Model binding maps user input to model properties using value providers and model binders. Data annotations provide validation attributes. Views are rendered using layouts and can pass data and render partial views. Razor syntax combines HTML and C# code in views. Security concerns include XSS and CSRF prevention.
This talk represents the combined experience from several web development teams who have been using Symfony2 since months already to create high profile production applications. The aim is to give the audience real world advice on how to best leverage Symfony2, the current rough spots and how to work around them. Aside from covering how to implement functionality in Symfony2, this talk will also cover topics such as how to best integrate 3rd party bundles and where to find them as well as how to deploy the code and integrate into the entire server setup.
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 discusses dependency inversion and dependency injection principles in software design. It explains that high-level modules should depend on low-level modules through abstractions rather than concrete implementations. This allows for loose coupling between modules and makes them easier to test and maintain. The document provides examples of dependency injection in PHP code and describes how Laravel's service container implements dependency injection through binding abstractions to concrete classes and resolving dependencies through the container.
This document provides an overview of the Yii framework. It discusses why to use Yii, its main components including MVC, database access, forms and validation. It then covers key aspects of building applications with Yii such as configuration, controllers, models, views and layouts. It also discusses authentication, authorization, query building and Active Record for database access. Overall, the document is an introduction to the main concepts and features in the Yii PHP framework.
This document provides an overview of key concepts for developing applications with Symfony2 including: setting up the framework, code flow, dependency injection, configuration, controllers, applications, Doctrine integration, caching, performance tips, asset management, testing, deployment, third party bundles, and resources for contributing to Symfony2. It discusses service definitions, controller choices, application choices, Doctrine examples, caching strategies, performance optimization techniques, testing approaches, deployment options, and how to work with third party bundles.
Working With The Symfony Admin GeneratorJohn Cleveley
The document provides tips for customizing and extending the symfony admin generator. It discusses using PHP configuration instead of YAML, adding relations between models, translating the admin interface, tidying filters, and displaying timestamp fields as plain text. The key recommendations are to understand requirements before using the generator, customize it to suit workflows, and avoid it becoming a messy catch-all solution.
This document discusses several AngularJS design patterns for dealing with UI complexity, including:
1) Communicating between controllers via services, using either events, getters that return data, or mutating data directly.
2) Modeling complex data using schemas from the adt.js library to avoid null/undefined fields and clearly document the data structure.
3) Managing complex application state and transitions between states using statechart diagrams to explicitly define valid state changes and transitions.
Singletons in PHP - Why they are bad and how you can eliminate them from your...go_oh
While Singletons have become a Pattern-Non-Grata over the years, you still find it surprisingly often in PHP applications and frameworks. This talk will explain what the Singleton pattern is, how it works in PHP and why you should avoid it in your application.
Validation type 'special' in value setsFeras Ahmad
This document describes how to configure a special validation type value set in Oracle to restrict users to limited or conditional value entries. Special value sets allow for dynamic or specific checks through PL/SQL code. The steps provided configure a special value set that can be assigned to forms or concurrent requests to validate user-entered values meet criteria, such as ensuring a date is at least three months prior to the current date.
The document provides an overview of the Yii PHP framework, including its core components and features such as MVC architecture, database access, caching, authentication, theming, logging, error handling, and web services. Key sections summarize the entry script, application, controller, model, view, and component classes that make up the framework. Other sections cover basics like creating an application, working with databases and displaying data, as well as more advanced topics such as caching, URL management, and performance tuning.
The document discusses best practices for writing clean JavaScript code, including avoiding global variables, properly encapsulating variables, and batching DOM operations for performance. It emphasizes using strict comparisons, templating frameworks to help avoid common pitfalls, and following principles like KISS and SRP. Overall it stresses the importance of coding discipline, iterative development, and expressing code in an unambiguous way to facilitate collaboration.
The document discusses the components and utilities of the Backbone.js framework. It describes the key components of Backbone - Models, Collections, Views - and how they work together. Models contain interactive data and bind attributes to the DOM. Collections provide methods to manage ordered sets of models. Views handle templating and user interactions. The document also covers utilities like routing and events that help connect components.
Similar to Conditional fields - Olga Riabodzei (20)
Speed up the site building with Drupal's Bootstrap Layout BuilderDrupalCamp Kyiv
Layout Builder in Drupal 8 and 9 is a game-changer, let's maximize its efficiency with some add-ons modules and learn more about the best practices in using it with atomic design.
Watch the session recording on our Youtube channel: https://www.youtube.com/c/drupalcampkyiv
Performance Monitoring with Google LighthouseDrupalCamp Kyiv
In this session, you will learn how to track down performance and accessibility issues before they get deployed to the server.
Watch the session recording on our Youtube channel: https://www.youtube.com/c/drupalcampkyiv
Oleg Bogut - Decoupled Drupal: how to build stable solution with JSON:API, Re...DrupalCamp Kyiv
This document discusses building a decoupled Drupal site architecture using JSON:API, ReactJS, and Elasticsearch. It defines decoupled Drupal as exposing Drupal data via web services for consumption by other applications. Key points covered include advantages of decoupling like content syndication and frontend developer experience. JSON:API and GraphQL are presented as options for the Drupal API. ReactJS is recommended for building client-side applications. Elasticsearch is proposed for site search. Performance tuning and caching strategies are also addressed.
Acquia BLT for the Win, or How to speed up the project setup, development an...DrupalCamp Kyiv
Nikita Pohrebniak, Imagex
There are so many tools that can help you with every step of the development and deployment process. In this talk, we’ll explain why our company picked Acquia BLT, what it can do for you and how it can be customized to satisfy your needs.
Drupal Virtual Cafe #2, by DrupalCamp Kyiv
https://www.facebook.com/drupalcampkyiv/
The document discusses the growing Internet of Things (IoT) and how Drupal can be used as a platform for IoT applications. It notes that the number of connected devices is expected to grow dramatically by 2025. It then provides examples of how Drupal could be used to power various IoT applications and integrations, including websites, mobile apps, voice assistants, and more. The future of IoT is envisioned to include smart homes, cities, and even a "sensory planet" with many everyday objects becoming connected devices.
WHAT WE LEARNED FROM OPEN SOCIAL IN 3 YEARS, MOVING FROM AN AGENCY TO A PRODU...DrupalCamp Kyiv
This presentation will teach you the things that went well, and the things that did not go well in our journey to move our 20 people Drupal agency from a service company (bill by the hour) to a product SaaS company (bill per product, per month) called Open Social.
We will talk about funding your product, building a product, how to do marketing, sales and business development and how to grow internationally. We hope to discuss some questions as how to work with open-source and SaaS and does it help us or limit us competing with proprietary software vendors.
If you are thinking about building a product on Drupal or building a SaaS company, this is your session!
https://drupalcampkyiv.org/node/54
It is difficult to improve what is not measurable! Profiling an application should always be the first step in trying to improve its performance. With this workshop, learn how to identify performance issues in your application and adopt the best application profiling tools in your daily development habits. This workshop will guide you through the use of PHP profiling tools such as Blackfire.io to help you identify performance leaks.
Overview of the main ways to store data in Drupal 8 depending on data and needs. A detailed description of each way and examples of how to work with storages.
https://drupalcampkyiv.org/node/44
This is when things get real.
Emailing with hours for preparing replies is no more.
Now it’s you and your teammate at the table.
Face-to-face live conversation, with immediate responses on hard topics.
But you can prepare yourself.
There are checklists how to plan 1-1 meeting.
There are tricks on how to act during 1-1 meeting.
We'll discuss those.
Preliminary structure
1. Goals of 1-1 meeting
2. Preparation checklist
3. 1-1 meeting structure
4. Follow-ups
5. Tricks and obstacles: real-life examples (Drupal inclusive)
To whom it may concern
- Team leaders
- HRs
- CxOs
who host and facilitate such meetings.
https://drupalcampkyiv.org/node/49
UX DURING MODULE INSTALLATION AND CONFIGURATIONDrupalCamp Kyiv
I bet everyone in his/her life used OS Windows. There are a lot of opinions on it, but, to be honest, there is one huge advantage it has - installation wizards. Almost every programme that is being installed has some kind of interaction with end user. This gives at least the illusion of control over your system and of course it allows to have already preconfigured first time experience inside application. Some wizards give more options, some less, but it is nice to have it in the first place.
So, let's think about a Drupal user, that wants to install such a complex module like Metatags or Commerce. Although there are a lot of tutorials, documents and other help materials, there is always something that prevents end users from completing this "piece of cake" for developers task on his/her own. But all that he/she needs is only make it possible to add Metatags, let's say of OG type, to content type article.
https://drupalcampkyiv.org/node/57
SWITCHING FROM QA ENGINEER TO PROJECT MANAGER - LEVEL UP OR DOWN?DrupalCamp Kyiv
I’d like to tell my story of career path with practical advice to those who is longing the same dream. Also I’m willing to describe benefits and pitfalls of such changes.
Please see below the approximate plan of my speech:
- Brief statistics data: QAs moved to PMs. Why?
- How to start? Practical advice based on my own experience.
- Cross the Rubicon. When you need to make your decisive step.
- Small tips for stress resistance and time management.
- Negative points of being PM.
- Conclusion.
https://drupalcampkyiv.org/node/51
TECHNOLOGIES-POWERED WEB AND THE POST-BROWSER ERADrupalCamp Kyiv
Digital technologies development has been on a constant rise in the past several years. Technologies such as the blockchain, AR and VR were mere whispers at the beginning of the 21st century. Today, we see these and other technologies all around us thanks to increased computing power and visionary inventors.
How new user experiences and technologies change the way we build the web, such as machine learning, voice assistants, the blockchain, VR and AR. During this session, I would like to look into the technological history starting from the invention of the web up to the looking into the future on how our interaction with technologies will look like and how we’ll build the web in the post-browser era.
https://drupalcampkyiv.org/node/56
PROTECTED CONTENT: END-TO-END PGP ENCRYPTION FOR DRUPALDrupalCamp Kyiv
In this session I wish to explain Protected Content (just released its dev version: https://www.drupal.org/project/proc), the newest Drupal wrapper for OpenPGPjs. Luckly we will see also how to integrate its Exclusive Access Links into a content type.
https://drupalcampkyiv.org/node/83
For several years, we did numerous audits for small to big websites, small agencies and huge corporations, and always faced the same issues. What should you look for when running a website audit? What tools could help you? At which level of disaster you should advice your customer to recode entirely the website?
This session covers a methodology and set of tools to organize efficiently your Drupal websites audits
https://drupalcampkyiv.org/node/73
FROM DISTRO TO CUSTOM - HOW WE CREATE GREAT COMMUNITIES FOR EVERY ORGANIZATIO...DrupalCamp Kyiv
GoalGorilla build with Open Social one of the biggest Distributions in Drupal. This distribution builds the foundation for over 1000 communities world wide. We build ourselfs some big communities for clients like the UN, Greenpeace, the Dutch Government and others. All of this clients have a very specific profile and very specific needs. All of them are from different sectors: From NGOs, to Goverment organizations, Voluntary platforms, learning platforms and much more. As well all of our clients have at core a community the goals of the community and the key features for them to reach those goals are different every time. As much as we can rely on the distribution to cover the basics and a even more, every client is different and most bigger communities needs customizations to make the step from a good to a great community.
With every new client new challenges arise. With this talk I want to share some of the insights we gathered over the last 3 years, talk about how to navigate the pitfalls of customizing a Distribution and show how we fit different platforms to the specific requirements of different clients.
This talk is for:
- Developers who use or want to use Open Social (We will discuss some modules we use and technical choices, but it will not be primarily a technical talk)
- Professionals working with online communities
- Project managers or Designers that need to conceptualize projects that are based on a Distribution
https://drupalcampkyiv.org/node/77
SEARCH API: TIPS AND TRICKS - FROM BEGINNING TO CUSTOM SOLUTIONSDrupalCamp Kyiv
I'm planning to introduce developers with Search API system during the presentation :
- What is Search API and how to deal with it;
- Overview of the most used search backends for Search API;
- What is the difference between Drupal 7 and 8 Search API;
- Faceted and fulltext search and how to use it;
- Tips and tricks regarding customization and extending of Search API / Faceted search.
Level: from Beginners to Middle+
DEVOPS & THE DEATH AND REBIRTH OF CHILDHOOD INNOCENCEDrupalCamp Kyiv
Remember when the internet was pure and unspoiled? In our innocence we saw the promise of renewal of the world through connecting, sharing, and creating online. We became developers and hackers because we wanted to understand how things work, to take them apart, and build quirky (and sometimes useful) things just for the pleasure of it.
In the earliest decades of the Internet Epoch the Internet was a playground. We happily coded directly on production systems. And it was fine, as many Great Things were created. But the Internet has matured, and has now become Big Business. Developers have matured too, and good thing they did! So many people now rely on what we’ve built, for security, for privacy, for the paycheck at the end of the month. We matter.
Maturity has come at a price though, and deploying well tested code into complex applications with polyglot teams working with heterogeneous stacks, all while maintaining compliance with GDPR, HIPAA, PCI, etc. has taken all of the childhood innocence out of the web. Now even the simplest website seems like Hard Work.
In this talk I will show how we can, and should, regain our joyful demeanor, how we can use the maturity of the most innovative tools around us to start hacking like crazy again. Without regressing on agility, testing, compliance, scalability or robustness. I use the metaphor of childhood innocence to explain how the complexity of modern cloud computing, in combination with increasing quality expectations and compliancy, has curtailed the creative freedom of developers, and as a whole, organisational motivation.
Together with a lack of resources and idea time, this leads to lower and slower product innovation. We are, however, at the brink of a paradigm shift in cloud computing that will give developers and hackers their mojo again. This talk will zoom into the key elements of this paradigm shift, and provide an overview of the basic concepts and operational practices of the new age of developer innocence.
https://drupalcampkyiv.org/node/81
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
Dr. Sean Tan, Head of Data Science, Changi Airport Group
Discover how Changi Airport Group (CAG) leverages graph technologies and generative AI to revolutionize their search capabilities. This session delves into the unique search needs of CAG’s diverse passengers and customers, showcasing how graph data structures enhance the accuracy and relevance of AI-generated search results, mitigating the risk of “hallucinations” and improving the overall customer journey.
Unlocking Productivity: Leveraging the Potential of Copilot in Microsoft 365, a presentation by Christoforos Vlachos, Senior Solutions Manager – Modern Workplace, Uni Systems
“An Outlook of the Ongoing and Future Relationship between Blockchain Technologies and Process-aware Information Systems.” Invited talk at the joint workshop on Blockchain for Information Systems (BC4IS) and Blockchain for Trusted Data Sharing (B4TDS), co-located with with the 36th International Conference on Advanced Information Systems Engineering (CAiSE), 3 June 2024, Limassol, Cyprus.
UiPath Test Automation using UiPath Test Suite series, part 6DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 6. In this session, we will cover Test Automation with generative AI and Open AI.
UiPath Test Automation with generative AI and Open AI webinar offers an in-depth exploration of leveraging cutting-edge technologies for test automation within the UiPath platform. Attendees will delve into the integration of generative AI, a test automation solution, with Open AI advanced natural language processing capabilities.
Throughout the session, participants will discover how this synergy empowers testers to automate repetitive tasks, enhance testing accuracy, and expedite the software testing life cycle. Topics covered include the seamless integration process, practical use cases, and the benefits of harnessing AI-driven automation for UiPath testing initiatives. By attending this webinar, testers, and automation professionals can gain valuable insights into harnessing the power of AI to optimize their test automation workflows within the UiPath ecosystem, ultimately driving efficiency and quality in software development processes.
What will you get from this session?
1. Insights into integrating generative AI.
2. Understanding how this integration enhances test automation within the UiPath platform
3. Practical demonstrations
4. Exploration of real-world use cases illustrating the benefits of AI-driven test automation for UiPath
Topics covered:
What is generative AI
Test Automation with generative AI and Open AI.
UiPath integration with generative AI
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Building Production Ready Search Pipelines with Spark and MilvusZilliz
Spark is the widely used ETL tool for processing, indexing and ingesting data to serving stack for search. Milvus is the production-ready open-source vector database. In this talk we will show how to use Spark to process unstructured data to extract vector representations, and push the vectors to Milvus vector database for search serving.
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc
How does your privacy program stack up against your peers? What challenges are privacy teams tackling and prioritizing in 2024?
In the fifth annual Global Privacy Benchmarks Survey, we asked over 1,800 global privacy professionals and business executives to share their perspectives on the current state of privacy inside and outside of their organizations. This year’s report focused on emerging areas of importance for privacy and compliance professionals, including considerations and implications of Artificial Intelligence (AI) technologies, building brand trust, and different approaches for achieving higher privacy competence scores.
See how organizational priorities and strategic approaches to data security and privacy are evolving around the globe.
This webinar will review:
- The top 10 privacy insights from the fifth annual Global Privacy Benchmarks Survey
- The top challenges for privacy leaders, practitioners, and organizations in 2024
- Key themes to consider in developing and maintaining your privacy program
Climate Impact of Software Testing at Nordic Testing DaysKari Kakkonen
My slides at Nordic Testing Days 6.6.2024
Climate impact / sustainability of software testing discussed on the talk. ICT and testing must carry their part of global responsibility to help with the climat warming. We can minimize the carbon footprint but we can also have a carbon handprint, a positive impact on the climate. Quality characteristics can be added with sustainability, and then measured continuously. Test environments can be used less, and in smaller scale and on demand. Test techniques can be used in optimizing or minimizing number of tests. Test automation can be used to speed up testing.
Pushing the limits of ePRTC: 100ns holdover for 100 daysAdtran
At WSTS 2024, Alon Stern explored the topic of parametric holdover and explained how recent research findings can be implemented in real-world PNT networks to achieve 100 nanoseconds of accuracy for up to 100 days.
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!SOFTTECHHUB
As the digital landscape continually evolves, operating systems play a critical role in shaping user experiences and productivity. The launch of Nitrux Linux 3.5.0 marks a significant milestone, offering a robust alternative to traditional systems such as Windows 11. This article delves into the essence of Nitrux Linux 3.5.0, exploring its unique features, advantages, and how it stands as a compelling choice for both casual users and tech enthusiasts.
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceIndexBug
Imagine a world where machines not only perform tasks but also learn, adapt, and make decisions. This is the promise of Artificial Intelligence (AI), a technology that's not just enhancing our lives but revolutionizing entire industries.
GraphRAG for Life Science to increase LLM accuracyTomaz Bratanic
GraphRAG for life science domain, where you retriever information from biomedical knowledge graphs using LLMs to increase the accuracy and performance of generated answers
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfMalak Abu Hammad
Discover how MongoDB Atlas and vector search technology can revolutionize your application's search capabilities. This comprehensive presentation covers:
* What is Vector Search?
* Importance and benefits of vector search
* Practical use cases across various industries
* Step-by-step implementation guide
* Live demos with code snippets
* Enhancing LLM capabilities with vector search
* Best practices and optimization strategies
Perfect for developers, AI enthusiasts, and tech leaders. Learn how to leverage MongoDB Atlas to deliver highly relevant, context-aware search results, transforming your data retrieval process. Stay ahead in tech innovation and maximize the potential of your applications.
#MongoDB #VectorSearch #AI #SemanticSearch #TechInnovation #DataScience #LLM #MachineLearning #SearchTechnology
6. What is "condition"?
● Filled
The dependee has at least one non-empty value
● Touched
The dependee has received focus at least once.
● Focused
The dependee is currently focused.
● Checked
The dependee is a checkbox and is checked.
● Empty
The dependee has an empty value.
● Untouched
The dependee has never received focus.
● Unfocused
The dependee is currently not focused.
● Unchecked
The dependee is a checkbox and is not checked.
This is the condition that dependee should meet to trigger the dependency.
Available options:
● Value: The dependee has a certain value or set of values
6
8. Values input mode
● Widget
Use the actual form widget to insert the desired values.
This is a quick but limited way to set up simple dependencies.
● Regular expression
Use a text field to insert a regular expression.
● All these values (AND)
Use a text area to insert a list of values.
● Any of these values (OR)
Use a text area to insert a list of values.
● Only one of these values (XOR)
Use a text area to insert a list of values.
● None of these values (NOT)
Use a text area to insert a list of values.
8
12. General rules of applying conditions
12
Current state based on Drupal 7
● hook_element_info_alter()
● conditional_fields_element_after_build()
● conditional_fields_attach_dependency()
ToDo for Drupal 8
● Simplify and refactor this.
● Create a separate controller.
14. In the Field API
Each field has a type, which determines what kind of data (integer, string, date, etc.) the
field can hold, which settings it provides, and so on.
The Field Types API also defines two kinds of pluggable handlers: widgets and formatters.
Widgets - in edit forms.
Formatters - in displayed entities.
14
19. Small example
protected function setUp() {
parent::setUp();
$this->fieldSelector = '[name="field_' .
$this->fieldName . '[0][value]"]';
$fieldStorageDefinition = [
'field_name' => 'field_' . $this->fieldName,
'entity_type' => 'node',
'type' => 'text',
'cardinality' => 1,
];
$fieldStorage =
FieldStorageConfig::create($fieldStorageDefinition)
;
$fieldStorage->save();
FieldConfig::create([
'field_name' => 'field_' . $this->fieldName,
'entity_type' => 'node',
'bundle' => 'article',
])->save();
EntityFormDisplay::load('node.article.default')
->setComponent('field_' . $this->fieldName,
['type' => 'text_textfield'])
->save();
}
Create in setUp() function all
that You need for a test: user,
content types, fields and etc.
19
20. Small example
protected function waitUntilVisible(
$selector,
$timeout = 1000,
$message = '')
{
$condition = "jQuery('{$selector}').is(':visible');";
$this->assertJsCondition($condition, $timeout, $message);
}
protected function waitUntilHidden(
$selector,
$timeout = 1000,
$message = '')
{
$condition = "jQuery('{$selector}').is(':hidden');";
$this->assertJsCondition($condition, $timeout, $message);
}
protected function changeField($selector, $value = '')
{
$script =
"jQuery('{$selector}').val('{$value}').trigger('keyup').trigger('change'
);"
$this->getSession()->executeScript($script);
}
Some useful small functions
20
21. Tests need and small example
public function testVisibleValueWidget() {
$this->baseTestSteps();
// Visit a ConditionalFields configuration page for Content bundles.
$this->createCondition('body', 'field_' . $this->fieldName, 'visible', 'value');
// Set up conditions.
$text = $this->getRandomGenerator()->word(8);
$data = [
'[name="condition"]' => 'value',
'[name="values_set"]' => 1,
$this->fieldSelector => $text,
'[name="grouping"]' => 'AND',
'[name="state"]' => 'visible',
'[name="effect"]' => 'show',
];
foreach ($data as $selector => $value) {
$this->changeField($selector, $value);
}
$this->getSession()->wait(1000, '!jQuery.active');
$this->getSession()
->executeScript("jQuery('#conditional-field-edit-form').submit();");
$this->assertSession()->statusCodeEquals(200);
// Check if that configuration is saved.
$this->drupalGet('admin/structure/types/manage/article/conditionals');
$this->assertSession()
->pageTextContains('body ' . 'field_' . $this->fieldName . ' visible
value');
// Visit Article Add form to check that conditions are applied.
$this->drupalGet('node/add/article');
$this->assertSession()->statusCodeEquals(200);
// Check that the field Body is not visible.
$this->waitUntilHidden('.field--name-body', 0, 'Article Body field is
visible');
$this->changeField($this->fieldSelector, $text);
$this->waitUntilVisible('.field--name-body', 50, 'Article Body field is
not visible');
// Change a select value set to hide the body again.
$this->changeField($this->fieldSelector, $text . 'a');
$this->waitUntilHidden('.field--name-body', 50, 'Article Body field is
visible');
}
Remember - just reproduce your steps like a user!
21
22. Plans and further development
● Bug fixing :)
● More refactoring.
● Finish all tests.
● Create new handler plugins if they are needed.
● Create a submodule for applying conditions on entity view display.
● Apply conditions depending on user roles.
● Investigate possibility to extend with “Dynamic dependent fields”.
22