This document discusses using code-driven development with features in Drupal 6 and 7. Key points include:
- Storing configuration and content in code via features allows for version control and easier deployment to production.
- A "controller feature" can be used to manage other features and site-wide configuration through hook updates and installation tasks.
- Features follow code conventions like logical namespaces to organize functionality.
- In Drupal 7, installation profiles are like modules and use similar hooks to manage updates and configuration.
28.03.15. Одесса. Impact Hub Odessa. Конференция JSLab.
Алексей Волков. "React на практике"
Доклад освещает практические аспекты использования React.js в различном окружении. React и модели Backbone. React и таблицы стилей, а также React в мобильном вебе. Будет полезно как и тем, кто только интересуется этой библиотекой, а также опытным разработчикам.
Подробнее:
http://geekslab.co/
https://www.facebook.com/GeeksLab.co
https://www.youtube.com/user/GeeksLabVideo
As your app code gets larger and more complex, it makes sense to break your project out into smaller reusable components. But what’s the best way to do this? How can you clearly version your internal libraries? What kind of setup and maintenance can you expect? How much could it slow down development time?
In this talk we’ll dive into the various ways you can manage internal library dependencies. We’ll chat about the current state of Android dependency management, Gradle multi-project builds, Git submodules, and creating a private maven repository in Artifactory. The speaker will share real-world examples, and the pros and cons of each approach.
28.03.15. Одесса. Impact Hub Odessa. Конференция JSLab.
Алексей Волков. "React на практике"
Доклад освещает практические аспекты использования React.js в различном окружении. React и модели Backbone. React и таблицы стилей, а также React в мобильном вебе. Будет полезно как и тем, кто только интересуется этой библиотекой, а также опытным разработчикам.
Подробнее:
http://geekslab.co/
https://www.facebook.com/GeeksLab.co
https://www.youtube.com/user/GeeksLabVideo
As your app code gets larger and more complex, it makes sense to break your project out into smaller reusable components. But what’s the best way to do this? How can you clearly version your internal libraries? What kind of setup and maintenance can you expect? How much could it slow down development time?
In this talk we’ll dive into the various ways you can manage internal library dependencies. We’ll chat about the current state of Android dependency management, Gradle multi-project builds, Git submodules, and creating a private maven repository in Artifactory. The speaker will share real-world examples, and the pros and cons of each approach.
Arcadian Learning is an Industrial Training Company with 50 years of Industry Expertise on Planning, Implementation and Operation of the Networks Offering six months Industrial Training program on Cloud Computing, Telecom, Big Data and Application Development.
The Android developer should have the knowledge of fundamentals of Android layouts, Widgets, UIs and Web Services & how to program your app’s interaction with activities and services.
http://www.arcadianlearning.com/application-web-development.html
Docker has changed the way Configuration Management is done. And Chef can be Docker's best friend to bake your favorite Config!
This session will cover -
- Using chef containers
- Managing docker images using Chef
- Using Chef push jobs to run docker containers on nodes
- And most importantly - why Chef is needed to manage dockers and why it all cannot be done with "simple" docker files!
https://youtu.be/5NiJ03r8h9E
Build, Publish, Deploy and Test Docker images and containers with Jenkins Wor...Docker, Inc.
This lightning talk will show you how simple it is to apply CI to the creation of Docker images, ensuring that each time the source is changed, a new image is created, tagged, and published. I will then show how easy it is to then deploy containers from this image and run tests to verify the behaviour.
SenchaCon 2016: Enterprise Applications, Role Based Access Controls (RBAC) an...Sencha
This session will cover a real-world example of an enterprise application built using role-based access controls (RBAC) that also support client customizations. We'll show how we built the application in Ext JS 4, and how we leveraged that solution in Ext JS 6. We'll include a detailed working example of how we solved our problem, some of the challenges we faced, and our approach. We'll talk about the new features we used in Ext JS 6, examples of custom components, and how to use a designer on your project. We'll show code examples for RBAC and how the same strategy supported client customizations.
First Steps in Drupal Code Driven DevelopmentNuvole
"First Steps in Code Driven Development" covers basic techniques and good practices. Presented during the "Developer Session" at Krimson office, Antwerp (BE), the 27th of May 2010.
In this deck from the Stanford HPC Conference, Christian Kniep from Docker, Inc. gives a tutorial on linux containers.
"This tutorial provides a detailed overview of the components needed to run containerized applications and explores how distributed HPC applications can be tackled. We’ll explain the concept of Linux Containers and describe the bits and pieces participants will explore following step-by-step examples.
The workshop will introduce the predominant forms of orchestration in the industry; what problems they solve and how to approach the problem.
Attendees will explore the benefits and drawbacks of orchestrators first hand with their own small exemplary stack deployments.
Finally the workshop will introduce how HPC and Big Data workloads can be tackled on-top of these service-oriented clusters."
Watch the video: https://youtu.be/LJinZpCTyk0
Learn more: http://www.docker.com/
and
http://hpcadvisorycouncil.com
Sign up for our insideHPC Newsletter: http://insidehpc.com/newsletter
This fast-paced overview for beginners discusses some aspects of AngularJS 1.x and 2.x, which versions to learn (and why), and the technologies that you need to learn. We'll delve into examples of combining AngularJS with other technologies (such as BackboneJS and D3.js), and also address the +/- of AngularJS.
Tech Talk: DevOps at LeanIX @ Startup Camp BerlinLeanIX GmbH
DevOps at LeanIX - Presentation during Startup Camp Berlin 2015. Covering tools like Docker, Jenkins and Ansible.
===
LeanIX offers an innovative software-as-a-service solution for Enterprise Architecture Management (EAM), based either in a public cloud or the client’s data center.
Companies like Adidas, Axel Springer, Helvetia, RWE, Trusted Shops and Zalando use LeanIX Enterprise Architecture Management tool.
Free Trial: http://bit.ly/LeanIXDemoS
Arcadian Learning is an Industrial Training Company with 50 years of Industry Expertise on Planning, Implementation and Operation of the Networks Offering six months Industrial Training program on Cloud Computing, Telecom, Big Data and Application Development.
The Android developer should have the knowledge of fundamentals of Android layouts, Widgets, UIs and Web Services & how to program your app’s interaction with activities and services.
http://www.arcadianlearning.com/application-web-development.html
Docker has changed the way Configuration Management is done. And Chef can be Docker's best friend to bake your favorite Config!
This session will cover -
- Using chef containers
- Managing docker images using Chef
- Using Chef push jobs to run docker containers on nodes
- And most importantly - why Chef is needed to manage dockers and why it all cannot be done with "simple" docker files!
https://youtu.be/5NiJ03r8h9E
Build, Publish, Deploy and Test Docker images and containers with Jenkins Wor...Docker, Inc.
This lightning talk will show you how simple it is to apply CI to the creation of Docker images, ensuring that each time the source is changed, a new image is created, tagged, and published. I will then show how easy it is to then deploy containers from this image and run tests to verify the behaviour.
SenchaCon 2016: Enterprise Applications, Role Based Access Controls (RBAC) an...Sencha
This session will cover a real-world example of an enterprise application built using role-based access controls (RBAC) that also support client customizations. We'll show how we built the application in Ext JS 4, and how we leveraged that solution in Ext JS 6. We'll include a detailed working example of how we solved our problem, some of the challenges we faced, and our approach. We'll talk about the new features we used in Ext JS 6, examples of custom components, and how to use a designer on your project. We'll show code examples for RBAC and how the same strategy supported client customizations.
First Steps in Drupal Code Driven DevelopmentNuvole
"First Steps in Code Driven Development" covers basic techniques and good practices. Presented during the "Developer Session" at Krimson office, Antwerp (BE), the 27th of May 2010.
In this deck from the Stanford HPC Conference, Christian Kniep from Docker, Inc. gives a tutorial on linux containers.
"This tutorial provides a detailed overview of the components needed to run containerized applications and explores how distributed HPC applications can be tackled. We’ll explain the concept of Linux Containers and describe the bits and pieces participants will explore following step-by-step examples.
The workshop will introduce the predominant forms of orchestration in the industry; what problems they solve and how to approach the problem.
Attendees will explore the benefits and drawbacks of orchestrators first hand with their own small exemplary stack deployments.
Finally the workshop will introduce how HPC and Big Data workloads can be tackled on-top of these service-oriented clusters."
Watch the video: https://youtu.be/LJinZpCTyk0
Learn more: http://www.docker.com/
and
http://hpcadvisorycouncil.com
Sign up for our insideHPC Newsletter: http://insidehpc.com/newsletter
This fast-paced overview for beginners discusses some aspects of AngularJS 1.x and 2.x, which versions to learn (and why), and the technologies that you need to learn. We'll delve into examples of combining AngularJS with other technologies (such as BackboneJS and D3.js), and also address the +/- of AngularJS.
Tech Talk: DevOps at LeanIX @ Startup Camp BerlinLeanIX GmbH
DevOps at LeanIX - Presentation during Startup Camp Berlin 2015. Covering tools like Docker, Jenkins and Ansible.
===
LeanIX offers an innovative software-as-a-service solution for Enterprise Architecture Management (EAM), based either in a public cloud or the client’s data center.
Companies like Adidas, Axel Springer, Helvetia, RWE, Trusted Shops and Zalando use LeanIX Enterprise Architecture Management tool.
Free Trial: http://bit.ly/LeanIXDemoS
Every time we generate an Angular app with schematics it contains a set of Angular builders that can be used out of the box. By the time your application grows you will need a set of tasks that can automate processes such as generate the documentation, deploy an image on docker, or deploy the app on a k8s cluster. These tasks can be executed as Angular custom builders. This talk will show you how to create a custom Angular builder step by step with an overview of what is a monorepo and its benefits. At the end of the talk, we will be able to run our custom builder by running the command ng run my-app:custom-builder
Pebble SDK 2.0 is a brand new SDK for the Pebble smartwatch with support for JavaScript enabled apps, accelerometer, persistent storage, new tools, etc.
You can also watch the video announcement:
http://www.youtube.com/watch?v=uoVX2ibCFXw&feature=youtu.be
CMI 2.0 session at Drupal DevDays in Cluj-NapocaNuvole
Session page: https://cluj2019.drupaldays.org/cmi-20-and-you
Configuration management has been one of the signature improvements that Drupal 8 brought us.
However, initially, Drupal 8 core only supported a very narrow use case and left the rest to contrib to figure out. In the second iteration of the configuration management initiative, we take the lessons learned from contrib and implement them in the core. But we have only a narrow window of time left to get things done for Drupal 8.
Now is the time to get involved, the deadline for 8.8 is very soon!
Participants of this session do not need to be experts on configuration management, having used the core config module and maybe config_split is enough.
You will walk away with good sense of what we are trying to bring to Drupal 8.8 and why it is important to get involved at the sprints during this event.
Advanced Configuration Management with Config Split et al.Nuvole
So you know how to use configuration management in Drupal 8. It works great for its intended use case but you have more advanced needs and Drupal core and drush don’t really help you? You read or write blog posts pointing out shortcomings of Drupals configuration management?
Configuration Split and its friends will jump in and help with almost all your Configuration Management struggles. Some configuration needs to exist only in some environments, like development modules? Your client edits some configuration on the production site? You have two sites that are almost the same but not exactly? You checked out configuration split but didn’t get what it does?
At this session all your questions will be answered and you will love the configuration management in Drupal 8 even more. Next to Configuration Split and its road map we will also see some other solutions for other potential stumbling blocks, such as deploying configuration which depends on content or installing a site from existing configuration.
Modules covered:
Configuration Split (and Config Filter)
Configuration installer
Configuration Read-only mode
More modules briefly
Introducing the UI Patterns module: use atomic UI components everywhere in Dr...Nuvole
In this session we will show how the UI Patterns module allows you to define and expose self-contained UI patterns as Drupal 8 plugins and to use them as drop-in templates for panels, field groups, views, Display Suite view modes, field templates, etc.
Over the past years projects like PatternLab or the Component Libraries module aimed at lowering the cost of maintaining and re-using UI patterns in your projects.
But, as we all know, when it comes to presenting content the Drupal 8 landscape is quite diverse: you can layout your pages using Panels or Views, style your entities using Display Suite view modes, group your fields with Field group, etc. Such a diversification can surely present some challenges when it comes at reusing a well-designed and consistent UI library.
The UI patterns module makes it possible to seamlessly use UI patterns with views, layouts, field formatters, etc.
The session will also feature a brief live-demo of the following functionalities:
- Define patterns using YAML
- Visualize patterns on a pattern library page
- Organize patterns into self-contained bundles of JavaScript, - - CSS and TWIG template
- Integrate patterns with tools like PatternLab
- Use patterns as paragraphs or nodes layouts
- Use patterns as field group templates
- Use patterns as views row templates
- Use patterns as field templates
- Advanced topic: a closer look to UI Patterns internals
Drupal 8 Configuration Management with FeaturesNuvole
Configuration Management is one of the prominent new features coming with Drupal 8. The reference use case for Configuration Management in Drupal 8 is quite different than the standard Drupal 7 + Features use case, both for a site builder and for a developer. And the Features module in Drupal 8 will have to be used in a different way.
Building and Maintaining a Distribution in Drupal 7 with FeaturesNuvole
Drupal 7 allows to easily build and maintain distributions, i.e. repeatable website templates; you can benefit from this in all cases, whether you aim at large-scale deployments or even at maintaining a single website.
We will show how to package core and contributed modules in a distribution by using a Makefile and a profile and keeping them up-to-date during the whole development cycle.
Then you will learn how to use Code-Driven Development to store all settings in a sustainable way: use the Features module to easily describe configuration in code, a proper separation between Features to make your code reusable and extendible, a well-thought design of Features to create easier development patterns, CTools and Exportables to put your configuration in code even when a module does not support it natively.
Last, we will see how the distributions update mechanism allows you to create a new version of your distribution for easy and painless configuration updates of a live site.
7. Major drawbacks
• Not ideal for a distributed team
• Makes it difficult to push settings to production
• Content and settings are mixed in one db dump
• Easy to lose control
12. From DB to code and vice versa
$ # Dump your changes into code.
$ drush features-update feature_name
$ # Restore your changes into the db.
$ drush features-revert feature_name
13. Want to add a component to a feature?
1. add it to the .info file
2. $ drush features-update feature_name
14. Want to remove a component from a feature?
1. remove it from the .info file
2. $ drush features-update feature_name
25. Controller Feature Workflow
6001
Developer A
Time
Developer B
Time
DevA$ svn ci -m “Enable Rules module.”
Developer A commits his changes.
26. Controller Feature Workflow
6001
Developer A
Time
Developer B
Time
DevB$ svn up && dr updatedb -y && dr cc all
Developer B updates his local copy
and wants to remove a user role.
27. hook_update_N()
/**
* Removing contributor role
*/
function feature_controller_update_6002() {
$return = array();
$role_name = 'contributor';
$result = db_query("SELECT rid FROM {role} WHERE name='%s'", $role_name);
while ($role = db_fetch_object($result)) {
$rid = $role->rid;
$return[] = update_sql("DELETE FROM {role} WHERE rid = '$rid'");
$return[] = update_sql("DELETE FROM {users_roles} WHERE rid = '$rid'");
}
return $return;
}
feature_controller.install
28. Controller Feature Workflow
6001
Developer A
Time
Developer B
6002
Time
DevB$ svn ci -m “Removed contributor role.”
Developer B commits his changes.
29. Controller Feature Workflow
6001
Developer A
Time
Developer B
6002
Time
Click. Click. Click.
DevB$ patch -p0 < inline.patch
Click. Click. Click.
Developer B adds an OpenID account for admin
and patches the Inline module.
30. hook_update_N()
/**
* Adding Nuvole OpenID to admin account
*/
function feature_controller_update_6003() {
$return = array();
$uid = 1;
$claimed_id = 'http://admin.myopenid.com/';
$return[] = update_sql("DELETE FROM {authmap} WHERE authname = '$claimed_id'");
$return[] = update_sql("INSERT INTO {authmap}(uid, authname, module)
VALUES($uid, '$claimed_id', 'openid')");
return $return;
}
feature_controller.install
32. Controller Feature Workflow
6001
Developer A
Time
Developer B
6002 6003
Time
DevB$ svn ci -m “Add OpenID for admin. Patching Inline”
Developer B commits his changes.
33. Controller Feature Workflow
6001
Developer A
Time
Developer B
6002 6003
Time
Developer C
Time
DevC$ svn co http://svn.nuvole.org/project
Developer C joins.
37. Controller Feature Workflow
6001
Developer A
Time
Developer B
6002 6003
Time
Developer C
Time
Click. Click. Click.
Developer C installs the project.
38. Controller Feature Workflow
6001
Developer A
Time
Developer B
6002 6003
Time
Developer C
Time
Click. Click. Click.
Developer C creates and enables a new feature.
41. Controller Feature Workflow
6001
Developer A
Time
Developer B
6002 6003
Time
Developer C
6004
Time
DevC$ svn ci -m “News Feature.”
Developer C commits his changes.