This document discusses configuration management in Drupal 8. It describes experiments with a settings API that allows configuration to be deployed from one environment to another (e.g. dev to staging to live). Settings can be overridden in different places and relations allow settings to track dependencies. A settings log records all changes for replaying updates. The goals include a features-like system for exports and pushing settings between sites over web services. Known issues include handling specific configuration requirements and preventing deployment if requirements are missing.
The document discusses Orleankka, which is a functional API for Microsoft Orleans that provides proper support for F# programming. Orleans is a distributed actor framework built by Microsoft Research that uses an actor model for building distributed systems. Orleankka addresses some limitations of Orleans like lack of support for F# and unit testing actors in isolation. It demonstrates concepts of Orleans like grains, silos, and clusters. Examples show how to define and use typed actors in F# with Orleankka's functional API.
Architectural Tradeoff in Learning-Based SoftwarePooyan Jamshidi
In classical software development, developers write explicit instructions in a programming language to hardcode the explicit behavior of software systems. By writing each line of code, the programmer instructs the software to have the desirable behavior by exploring a specific point in program space.
Recently, however, software systems are adding learning components that, instead of hardcoding an explicit behavior, learn a behavior through data. The learning-intensive software systems are written in terms of models and their parameters that need to be adjusted based on data. In learning-enabled systems, we specify some constraints on the behavior of a desirable program (e.g., a data set of input–output pairs of examples) and use the computational resources to search through the program space to find a program that satisfies the constraints. In neural networks, we restrict the search to a continuous subset of the program space.
This talk provides experimental evidence of making tradeoffs for deep neural network models, using the Deep Neural Network Architecture system as a case study. Concrete experimental results are presented; also featured are additional case studies in big data (Storm, Cassandra), data analytics (configurable boosting algorithms), and robotics applications.
Mozilla Web QA - Evolution of our Python WebDriver frameworkdavehunt82
In 2011 Mozilla developed and released a pytest plugin that simplified the task of maintaining functional UI tests for over a dozen web applications. It has served us well, but its uses outside of Mozilla are limited - unless you happen to have exactly the same requirements as us. To address this, the plugin has been shattered into three: pytest-selenium provides a Selenium instance and browser (with some nice new features); pytest-html provides a handy HTML report; and pytest-variables provides a useful way to inject variables into your tests.
1) Machine learning systems are increasingly configurable, making their performance behavior complex and difficult to understand. 2) The document discusses a social media monitoring system called SocialSensor, which uses a configurable data processing pipeline. 3) By exploring different system configurations, the performance of SocialSensor could potentially be improved without requiring more resources. This demonstrates an opportunity to optimize performance through configuration tuning.
This presentation is a part of the COP2271C college level course taught at the Florida Polytechnic University located in Lakeland Florida. The purpose of this course is to introduce Freshmen students to both the process of software development and to the Python language.
The course is one semester in length and meets for 2 hours twice a week. The Instructor is Dr. Jim Anderson.
A video of Dr. Anderson using these slides is available on YouTube at:
http://youtu.be/h2MMJYQy0bw
This presentation is a part of the COP2271C college level course taught at the Florida Polytechnic University located in Lakeland Florida. The purpose of this course is to introduce Freshmen students to both the process of software development and to the Python language.
The course is one semester in length and meets for 2 hours twice a week. The Instructor is Dr. Jim Anderson.
A video of Dr. Anderson using these slides is available on YouTube at:
https://youtu.be/lse2J_aIGuo
The document discusses Orleankka, which is a functional API for Microsoft Orleans that provides proper support for F# programming. Orleans is a distributed actor framework built by Microsoft Research that uses an actor model for building distributed systems. Orleankka addresses some limitations of Orleans like lack of support for F# and unit testing actors in isolation. It demonstrates concepts of Orleans like grains, silos, and clusters. Examples show how to define and use typed actors in F# with Orleankka's functional API.
Architectural Tradeoff in Learning-Based SoftwarePooyan Jamshidi
In classical software development, developers write explicit instructions in a programming language to hardcode the explicit behavior of software systems. By writing each line of code, the programmer instructs the software to have the desirable behavior by exploring a specific point in program space.
Recently, however, software systems are adding learning components that, instead of hardcoding an explicit behavior, learn a behavior through data. The learning-intensive software systems are written in terms of models and their parameters that need to be adjusted based on data. In learning-enabled systems, we specify some constraints on the behavior of a desirable program (e.g., a data set of input–output pairs of examples) and use the computational resources to search through the program space to find a program that satisfies the constraints. In neural networks, we restrict the search to a continuous subset of the program space.
This talk provides experimental evidence of making tradeoffs for deep neural network models, using the Deep Neural Network Architecture system as a case study. Concrete experimental results are presented; also featured are additional case studies in big data (Storm, Cassandra), data analytics (configurable boosting algorithms), and robotics applications.
Mozilla Web QA - Evolution of our Python WebDriver frameworkdavehunt82
In 2011 Mozilla developed and released a pytest plugin that simplified the task of maintaining functional UI tests for over a dozen web applications. It has served us well, but its uses outside of Mozilla are limited - unless you happen to have exactly the same requirements as us. To address this, the plugin has been shattered into three: pytest-selenium provides a Selenium instance and browser (with some nice new features); pytest-html provides a handy HTML report; and pytest-variables provides a useful way to inject variables into your tests.
1) Machine learning systems are increasingly configurable, making their performance behavior complex and difficult to understand. 2) The document discusses a social media monitoring system called SocialSensor, which uses a configurable data processing pipeline. 3) By exploring different system configurations, the performance of SocialSensor could potentially be improved without requiring more resources. This demonstrates an opportunity to optimize performance through configuration tuning.
This presentation is a part of the COP2271C college level course taught at the Florida Polytechnic University located in Lakeland Florida. The purpose of this course is to introduce Freshmen students to both the process of software development and to the Python language.
The course is one semester in length and meets for 2 hours twice a week. The Instructor is Dr. Jim Anderson.
A video of Dr. Anderson using these slides is available on YouTube at:
http://youtu.be/h2MMJYQy0bw
This presentation is a part of the COP2271C college level course taught at the Florida Polytechnic University located in Lakeland Florida. The purpose of this course is to introduce Freshmen students to both the process of software development and to the Python language.
The course is one semester in length and meets for 2 hours twice a week. The Instructor is Dr. Jim Anderson.
A video of Dr. Anderson using these slides is available on YouTube at:
https://youtu.be/lse2J_aIGuo
The document discusses a draft API for storing system settings in Drupal. The API aims to make all settings exportable and overrideable by default, provide a robust way to identify and replicate features, and allow for pluggable storage backends. Metadata would be stored with each setting to relate settings to modules, content types, and each other, and allow purging of unrelated settings from the database. Individual settings would contain structured data, values, and relations, and changes could trigger callbacks.
Drupal is an open source content management system started by Dries Buytaert as a college bulletin board. It has grown significantly since being open sourced in 2001 and has a large, active community on Drupal.org and IRC. Drupal consists of a core package with required and optional modules that provide basic features, along with thousands of contributed modules, themes, and projects that extend its functionality. Users are advised to test modules thoroughly in a test environment before using them and not to modify Drupal's core code directly.
The document discusses a draft API for storing system settings in Drupal. It aims to make all settings exportable and overrideable, with a pluggable storage backend. Settings can be specified in hooks, overridden in the database or alter hooks, and finally overridden in settings.php. Metadata would relate settings to modules, content types, and other settings. Change monitoring would detect changes between cache builds and trigger callbacks.
The document proposes a System Settings API to solve issues with functional configuration management and deployment in sites. The API would provide a central location for all site configuration, support change logging, and allow pluggable storage mechanisms. This would make adding features less disruptive and merging configuration across environments easier. The API is designed to support storing structured data and allow modules to specify how and when settings are loaded. New potential features include pluggable storage options, configuration version control, and a configuration server to propagate changes.
The document discusses various aspects of building modules for Drupal including preparing for development by establishing coding standards and development workflows. It covers Drupal's extensibility through hooks and APIs available for modules. Key aspects of module anatomy like .info, .module and .install files are outlined. The document also provides an overview of Drupal's database abstraction layer and functions like db_query() and db_fetch_object. Finally, it summarizes the hook system and theme registry for implementing themable functions and templates in modules.
Study: The Future of VR, AR and Self-Driving CarsLinkedIn
We asked LinkedIn members worldwide about their levels of interest in the latest wave of technology: whether they’re using wearables, and whether they intend to buy self-driving cars and VR headsets as they become available. We asked them too about their attitudes to technology and to the growing role of Artificial Intelligence (AI) in the devices that they use. The answers were fascinating – and in many cases, surprising.
This SlideShare explores the full results of this study, including detailed market-by-market breakdowns of intention levels for each technology – and how attitudes change with age, location and seniority level. If you’re marketing a tech brand – or planning to use VR and wearables to reach a professional audience – then these are insights you won’t want to miss.
The document discusses the Cotrix tool for collaborative editing of codelists. It describes Cotrix as supporting editorial workflows over codelists through a team-based process where each person has a specific role. Key features mentioned include import and export of codelists to and from various repositories, collaboration tools like user roles and permissions, and editing capabilities. Integration with virtual research environments and as a gCube application is also discussed.
Test driven infrastructure development (2 - puppetconf 2013 edition)Tomas Doran
The document discusses test driven infrastructure development. It describes issues with the current state where infrastructure changes are not repeatable and difficult to test. The speaker proposes modeling infrastructure as code where environments are defined programmatically and configuration is generated externally rather than defined directly in puppet code. This allows for entire environments to be provisioned on demand and tested in an automated and repeatable way. Key benefits include high availability, ability to test all infrastructure changes, fully repeatable environments, high confidence in changes, and continuous integration/deployment of infrastructure.
Advanced Topics in Continuous DeploymentMike Brittain
Like what you've read? We're frequently hiring for a variety of engineering roles at Etsy. If you're interested, drop me a line or send me your resume: mike@etsy.com.
http://www.etsy.com/careers
This document provides an overview of some of the key changes and new features being introduced in CakePHP 2.0. Some of the major changes discussed include: refactoring the core codebase and removing unused code; upgrading to PHPUnit for unit testing; standardizing how objects inherit via new Component architecture; leveraging more of the Standard PHP Library; exceptions being used to indicate errors; centralizing request and response handling; and dropping support for PHP 4. New features highlighted include PDO database support, simplified URL rewriting, support for nested named parameters, and a refactored authentication system. The document also discusses some of the challenges faced, including retaining backwards compatibility while continuing to improve and modernize the framework.
The Ember.js Framework - Everything You Need To KnowAll Things Open
All Things Open 2014 - Day 2
Thursday, October 23rd, 2014
Yehuda Katz
Founder of Tilde
Front Dev 1
The Ember.js Framework - Everything You Need To Know
.NET Core, ASP.NET Core Course, Session 15aminmesbahi
The document discusses saving data with Entity Framework Core, including:
- Tracking changes with the ChangeTracker and calling SaveChanges() to write changes to the database
- Adding, updating, deleting, and saving related data
- Configuring cascade deletes and concurrency tokens
- Handling concurrency conflicts when saving data
- Using transactions to group multiple database operations atomically
The document discusses parallel extensions to the .NET framework. It introduces the Task Parallel Library (TPL) as a new way to write multi-threaded code using tasks instead of threads directly. The TPL uses tasks and asynchronous operations to simplify parallel programming and allow the system to optimize workload distribution. It also discusses Parallel LINQ (PLINQ) for parallelizing LINQ queries and higher level constructs like Parallel.For that build on TPL.
Migraine Drupal - syncing your staging and live sitesdrupalindia
The document discusses using the Migraine tool to migrate changes between development, staging, and production environments for a Drupal website. It outlines the development methodology, requirements for Migraine, and the workflow it uses to synchronize databases and file systems between environments with minimal downtime. Key aspects include categorizing database tables, taking backups, comparing schemas, and commands to dump, migrate, and restore databases.
An introduction to Navicat database administration software for MySql. Covering making a connection to a local mysql server, remote server and remote connection through http tunneling.
The document provides an introduction to patterns in Atrium Discovery. It explains that patterns are used to infer additional information during the discovery process based on data collected. New patterns are added through regular Knowledge Updates and custom patterns can be written. Patterns contain triggers that are checked for during discovery and can perform additional commands. Pattern provenance is tracked to show the source of all inferred data.
The document discusses the roles and relationships between development (Dev) and operations (Ops) teams, and introduces the DevOps approach. It notes that traditionally there has been a disconnect between Devs and Ops that results in inefficiencies. DevOps aims to bridge this gap through a collaborative mindset and practices like automating infrastructure provisioning and deployments, implementing continuous integration/delivery, monitoring metrics, and breaking down silos between teams. Specific tools mentioned that support DevOps include Puppet for configuration management and Autobahn for continuous deployment.
The document summarizes plans for CakePHP 2.0, including:
- Refactoring the core code and removing unused code.
- Dropping support for PHP 4 and supporting PHP 5.2.6 and above.
- Replacing the SimpleTest unit testing framework with PHPUnit.
- Standardizing how objects inherit through components.
- Removing duplicated code and relying more on PHP's Standard PHP Library.
- Centralizing request and response handling.
- Allowing custom session handlers through an interface.
- Lazy loading nested objects to optimize performance.
Version control systems allow developers to track changes to files over time by recording file revisions, versions, and change history. They provide key benefits like backup and restore capabilities, the ability to revert files, and facilitating collaboration through features such as branching and merging. Common version control systems include Git, SVN, Mercurial, and CVS. Git is a distributed system while SVN uses a centralized model. This document discusses Git version control basics like cloning a repository, checking in and out files, viewing diffs of changes, branching, merging branches, and tagging releases.
The document provides instructions for migrating user and group security between Salesforce organizations using the Force.com Migration Tool. It describes how to set up the tool, including installing required software, configuring connection settings, constructing a project manifest file to specify metadata to migrate, retrieving metadata from the source org, and deploying it to the target org. The tool uses Ant tasks to automate migrating metadata and security configurations between orgs.
The document discusses using the Force.com Migration Tool to migrate metadata between Salesforce organizations. It covers installing the tool, constructing a project manifest listing components to retrieve or deploy, creating retrieve targets in the build file, and retrieving metadata from a Salesforce organization by running commands. Running tests is automatically done during deployment to verify changes.
Getting Unstuck: Working with Legacy Code and DataCory Foy
From this presentation for the IASA in 2007, Cory covers common challenges in dealing with Legacy Code and Data, and some tools and techniques for handling them.
The document discusses a draft API for storing system settings in Drupal. The API aims to make all settings exportable and overrideable by default, provide a robust way to identify and replicate features, and allow for pluggable storage backends. Metadata would be stored with each setting to relate settings to modules, content types, and each other, and allow purging of unrelated settings from the database. Individual settings would contain structured data, values, and relations, and changes could trigger callbacks.
Drupal is an open source content management system started by Dries Buytaert as a college bulletin board. It has grown significantly since being open sourced in 2001 and has a large, active community on Drupal.org and IRC. Drupal consists of a core package with required and optional modules that provide basic features, along with thousands of contributed modules, themes, and projects that extend its functionality. Users are advised to test modules thoroughly in a test environment before using them and not to modify Drupal's core code directly.
The document discusses a draft API for storing system settings in Drupal. It aims to make all settings exportable and overrideable, with a pluggable storage backend. Settings can be specified in hooks, overridden in the database or alter hooks, and finally overridden in settings.php. Metadata would relate settings to modules, content types, and other settings. Change monitoring would detect changes between cache builds and trigger callbacks.
The document proposes a System Settings API to solve issues with functional configuration management and deployment in sites. The API would provide a central location for all site configuration, support change logging, and allow pluggable storage mechanisms. This would make adding features less disruptive and merging configuration across environments easier. The API is designed to support storing structured data and allow modules to specify how and when settings are loaded. New potential features include pluggable storage options, configuration version control, and a configuration server to propagate changes.
The document discusses various aspects of building modules for Drupal including preparing for development by establishing coding standards and development workflows. It covers Drupal's extensibility through hooks and APIs available for modules. Key aspects of module anatomy like .info, .module and .install files are outlined. The document also provides an overview of Drupal's database abstraction layer and functions like db_query() and db_fetch_object. Finally, it summarizes the hook system and theme registry for implementing themable functions and templates in modules.
Study: The Future of VR, AR and Self-Driving CarsLinkedIn
We asked LinkedIn members worldwide about their levels of interest in the latest wave of technology: whether they’re using wearables, and whether they intend to buy self-driving cars and VR headsets as they become available. We asked them too about their attitudes to technology and to the growing role of Artificial Intelligence (AI) in the devices that they use. The answers were fascinating – and in many cases, surprising.
This SlideShare explores the full results of this study, including detailed market-by-market breakdowns of intention levels for each technology – and how attitudes change with age, location and seniority level. If you’re marketing a tech brand – or planning to use VR and wearables to reach a professional audience – then these are insights you won’t want to miss.
The document discusses the Cotrix tool for collaborative editing of codelists. It describes Cotrix as supporting editorial workflows over codelists through a team-based process where each person has a specific role. Key features mentioned include import and export of codelists to and from various repositories, collaboration tools like user roles and permissions, and editing capabilities. Integration with virtual research environments and as a gCube application is also discussed.
Test driven infrastructure development (2 - puppetconf 2013 edition)Tomas Doran
The document discusses test driven infrastructure development. It describes issues with the current state where infrastructure changes are not repeatable and difficult to test. The speaker proposes modeling infrastructure as code where environments are defined programmatically and configuration is generated externally rather than defined directly in puppet code. This allows for entire environments to be provisioned on demand and tested in an automated and repeatable way. Key benefits include high availability, ability to test all infrastructure changes, fully repeatable environments, high confidence in changes, and continuous integration/deployment of infrastructure.
Advanced Topics in Continuous DeploymentMike Brittain
Like what you've read? We're frequently hiring for a variety of engineering roles at Etsy. If you're interested, drop me a line or send me your resume: mike@etsy.com.
http://www.etsy.com/careers
This document provides an overview of some of the key changes and new features being introduced in CakePHP 2.0. Some of the major changes discussed include: refactoring the core codebase and removing unused code; upgrading to PHPUnit for unit testing; standardizing how objects inherit via new Component architecture; leveraging more of the Standard PHP Library; exceptions being used to indicate errors; centralizing request and response handling; and dropping support for PHP 4. New features highlighted include PDO database support, simplified URL rewriting, support for nested named parameters, and a refactored authentication system. The document also discusses some of the challenges faced, including retaining backwards compatibility while continuing to improve and modernize the framework.
The Ember.js Framework - Everything You Need To KnowAll Things Open
All Things Open 2014 - Day 2
Thursday, October 23rd, 2014
Yehuda Katz
Founder of Tilde
Front Dev 1
The Ember.js Framework - Everything You Need To Know
.NET Core, ASP.NET Core Course, Session 15aminmesbahi
The document discusses saving data with Entity Framework Core, including:
- Tracking changes with the ChangeTracker and calling SaveChanges() to write changes to the database
- Adding, updating, deleting, and saving related data
- Configuring cascade deletes and concurrency tokens
- Handling concurrency conflicts when saving data
- Using transactions to group multiple database operations atomically
The document discusses parallel extensions to the .NET framework. It introduces the Task Parallel Library (TPL) as a new way to write multi-threaded code using tasks instead of threads directly. The TPL uses tasks and asynchronous operations to simplify parallel programming and allow the system to optimize workload distribution. It also discusses Parallel LINQ (PLINQ) for parallelizing LINQ queries and higher level constructs like Parallel.For that build on TPL.
Migraine Drupal - syncing your staging and live sitesdrupalindia
The document discusses using the Migraine tool to migrate changes between development, staging, and production environments for a Drupal website. It outlines the development methodology, requirements for Migraine, and the workflow it uses to synchronize databases and file systems between environments with minimal downtime. Key aspects include categorizing database tables, taking backups, comparing schemas, and commands to dump, migrate, and restore databases.
An introduction to Navicat database administration software for MySql. Covering making a connection to a local mysql server, remote server and remote connection through http tunneling.
The document provides an introduction to patterns in Atrium Discovery. It explains that patterns are used to infer additional information during the discovery process based on data collected. New patterns are added through regular Knowledge Updates and custom patterns can be written. Patterns contain triggers that are checked for during discovery and can perform additional commands. Pattern provenance is tracked to show the source of all inferred data.
The document discusses the roles and relationships between development (Dev) and operations (Ops) teams, and introduces the DevOps approach. It notes that traditionally there has been a disconnect between Devs and Ops that results in inefficiencies. DevOps aims to bridge this gap through a collaborative mindset and practices like automating infrastructure provisioning and deployments, implementing continuous integration/delivery, monitoring metrics, and breaking down silos between teams. Specific tools mentioned that support DevOps include Puppet for configuration management and Autobahn for continuous deployment.
The document summarizes plans for CakePHP 2.0, including:
- Refactoring the core code and removing unused code.
- Dropping support for PHP 4 and supporting PHP 5.2.6 and above.
- Replacing the SimpleTest unit testing framework with PHPUnit.
- Standardizing how objects inherit through components.
- Removing duplicated code and relying more on PHP's Standard PHP Library.
- Centralizing request and response handling.
- Allowing custom session handlers through an interface.
- Lazy loading nested objects to optimize performance.
Version control systems allow developers to track changes to files over time by recording file revisions, versions, and change history. They provide key benefits like backup and restore capabilities, the ability to revert files, and facilitating collaboration through features such as branching and merging. Common version control systems include Git, SVN, Mercurial, and CVS. Git is a distributed system while SVN uses a centralized model. This document discusses Git version control basics like cloning a repository, checking in and out files, viewing diffs of changes, branching, merging branches, and tagging releases.
The document provides instructions for migrating user and group security between Salesforce organizations using the Force.com Migration Tool. It describes how to set up the tool, including installing required software, configuring connection settings, constructing a project manifest file to specify metadata to migrate, retrieving metadata from the source org, and deploying it to the target org. The tool uses Ant tasks to automate migrating metadata and security configurations between orgs.
The document discusses using the Force.com Migration Tool to migrate metadata between Salesforce organizations. It covers installing the tool, constructing a project manifest listing components to retrieve or deploy, creating retrieve targets in the build file, and retrieving metadata from a Salesforce organization by running commands. Running tests is automatically done during deployment to verify changes.
Getting Unstuck: Working with Legacy Code and DataCory Foy
From this presentation for the IASA in 2007, Cory covers common challenges in dealing with Legacy Code and Data, and some tools and techniques for handling them.
Understanding configuration in Drupal 8 is essential. It's a powerful tool that can streamline your development and deployment processes. After several rescue projects over the past year I have realised that the one thing that goes wrong first is the configuration. For some reason it's always left until last or even as an afterthought and this can really de-rail projects.
In this session I will cover.
How to get your configuration in and out of Drupal.
How to best manage your configuration.
Using configuration modules like Configuration Ignore and Configuration Split to manage your configuration across different platforms.
What to do when the client changes the configuration on your site and some other common problems that you might encounter.
Note: This presentation contained some videos that I couldn't translate into slideshare.
The document discusses basic WordPress security strategies and plugins to consider. It recommends picking a reliable host, splitting domains and hosting, backing up sites regularly, keeping WordPress and plugins updated, restricting wp-admin access, using strong passwords, and installing security-focused plugins like Akismet, Bad Behavior, and WP Security Scan. Regular server log checks, non-standard database prefixes, avoiding the "admin" user, file permission management, and .htaccess restrictions are also advised. Testing backups, database cleanup, and security audits are suggested along with using a staging server and services like CloudFlare.
The document provides instructions on using the Force.com Migration Tool to retrieve and deploy metadata between a local directory and a Salesforce organization. It discusses installing the tool, setting connection information, constructing a project manifest, creating retrieve targets, and retrieving metadata from Salesforce. The general procedure involves retrieving metadata files from a source org, making any changes, and deploying the files or deletions to a destination org.
The document provides instructions on using the Force.com Migration Tool to migrate metadata between a local directory and a Salesforce organization. It discusses installing the tool, setting up the build files with connection information and targets, constructing a project manifest, retrieving metadata from an org, and deploying it to another org. The tool allows automating repetitive deployment tasks through its use of Ant scripts.
4. CONFIG MANAGEMENT IN
D8
This talk is based on my own experiments
...and kind of pretending they’re done :-)
5. CONFIG MANAGEMENT IN
D8
This talk is based on my own experiments
...and kind of pretending they’re done :-)
https://github.com/tizzo/system_settings
13. Current Pain
No way to store data centrally without loading on every page
No central API for exporting (though ctools can provide most of
the plumbing)
14. Current Pain
No way to store data centrally without loading on every page
No central API for exporting (though ctools can provide most of
the plumbing)
No way to know about configuration (or content) dependencies
26. Relations
Allow settings to be associated with each other, and other things
throughout the system
Currently there are 3 relations
27. Relations
Allow settings to be associated with each other, and other things
throughout the system
Currently there are 3 relations
Entity
28. Relations
Allow settings to be associated with each other, and other things
throughout the system
Currently there are 3 relations
Entity
Groups
29. Relations
Allow settings to be associated with each other, and other things
throughout the system
Currently there are 3 relations
Entity
Groups
Modules (and themes)
32. Entity
Bad name (not an entity API entity)
Identifies a “thing” with a “type” and an “name”
33. Entity
Bad name (not an entity API entity)
Identifies a “thing” with a “type” and an “name”
Tracks
34. Entity
Bad name (not an entity API entity)
Identifies a “thing” with a “type” and an “name”
Tracks
requirement relationships between other settings (and maybe
even content?)
39. Groups
Essentially just “tags”
Allows you to get all of the settings from a given form, etc.
Allow hierarchy
Commerce => Payment Gateways => Authorize.net
45. Modules (And Themes)
Track dependencies
requires
required by
Register update callbacks
Allows module to say “when this changes, please let me know”
50. Settings Log
Records all settings changes: old setting & new setting
Serially increments
Log position stored in settings api (separate from the log)
51. Settings Log
Records all settings changes: old setting & new setting
Serially increments
Log position stored in settings api (separate from the log)
This lets us sync the log and then run update.php to apply
them until we’re back in line
54. New Interaction Models
Replay settings changes (every change can be replayed one after
another)
One way sync from dev to staging, move the log and run
update
55. New Interaction Models
Replay settings changes (every change can be replayed one after
another)
One way sync from dev to staging, move the log and run
update
Settings are replayed one by one, callbacks fired if necessary
56. New Interaction Models
Replay settings changes (every change can be replayed one after
another)
One way sync from dev to staging, move the log and run
update
Settings are replayed one by one, callbacks fired if necessary
Work offline and then “push” every settings change that you
haven’t yet modified to the central system (either over services or
putting config in code)
60. The Final Frontier
Features-like system for exports in core
“Locked” sites where settings can’t be changed all “clicky
clicky”
Perhaps “locked” settings can’t be changed all “clicky clicky”?
61. The Final Frontier
Features-like system for exports in core
“Locked” sites where settings can’t be changed all “clicky
clicky”
Perhaps “locked” settings can’t be changed all “clicky clicky”?
Settings replication over web services
62. The Final Frontier
Features-like system for exports in core
“Locked” sites where settings can’t be changed all “clicky
clicky”
Perhaps “locked” settings can’t be changed all “clicky clicky”?
Settings replication over web services
“Push” settings from one site to another
63. The Final Frontier
Features-like system for exports in core
“Locked” sites where settings can’t be changed all “clicky
clicky”
Perhaps “locked” settings can’t be changed all “clicky clicky”?
Settings replication over web services
“Push” settings from one site to another
Relations “Masks” to export “slices” of configuration
67. Known (expected) Issues
Requirements on a specific value instead of on a value existing
Preventing deployment if stuff is missing
Conflict resolution (if we try to “magically” move things around)
68. Known (expected) Issues
Requirements on a specific value instead of on a value existing
Preventing deployment if stuff is missing
Conflict resolution (if we try to “magically” move things around)
This doesn’t. Settings are atomic and if one thing sets a
setting and another changes it, it has been changed.
69. Known (expected) Issues
Requirements on a specific value instead of on a value existing
Preventing deployment if stuff is missing
Conflict resolution (if we try to “magically” move things around)
This doesn’t. Settings are atomic and if one thing sets a
setting and another changes it, it has been changed.
System currently puts all settings in a single db table (harder to
read & maintain... performance concerns...)