My popular talk on Debugging WordPress, presented at WordCamp London, WordCamp Norrkoping, Software University and WPBGUG
Video: http://wordpress.tv/2014/05/23/mario-peshev-debugging-wordpress/
The document discusses WordPress themes and the theme review process. It provides details on the themes directory, the WordPress Theme Review Team (WPTRT) which reviews themes, and the theme review process. Key points include that there are over 1700 free themes in the directory with hundreds of millions of downloads, and themes must pass review based on guidelines before being included. It offers tips for theme developers such as using child themes, following best practices, and using the appropriate licenses for code.
WordPress Code Architecture - revising the code architecture of the WordPress CMS and comparing it to the design patterns and core decisions in other CMS and frameworks based on PHP, Python, Ruby, Java and C#.
WordPress as a CMS - Case Study of an Organizational IntranetTech Liminal
This document discusses using WordPress as a content management system for an organizational intranet. The goals of the project were to improve information architecture, usability, search, and allow more decentralized content control. WordPress Multisite was implemented with custom themes and plugins. Key features included aggregated feeds and events across sites, standardized branding, and an anonymous feedback blog. Lessons learned included the need for table editing, ongoing training, custom CSS classes, and ensuring server performance for a large WordPress Multisite installation.
Microsoft Azure DocumentDB - Global Azure Bootcamp 2016Sunny Sharma
Microsoft Azure DocumentDB is a fully managed NoSQL database service that supports JSON documents and SQL queries. It provides tunable consistency levels from strong to eventual, excellent search capabilities without SQL, and a REST API. Documents are stored in collections and addressed through a unique ID. Operations include CRUD and querying documents. DocumentDB also supports server-side JavaScript for stored procedures, triggers, and user-defined functions.
.NET is a collection of libraries and frameworks for building applications. It includes the Common Language Runtime (CLR) which handles tasks like memory management and code execution. The .NET framework supports many programming languages and allows building different types of applications like web apps, Windows apps, web services, and more. The document provides an overview of .NET fundamentals and architecture, common terminology, and suggests starting with the free Visual Studio Community edition to get started with .NET development.
The document discusses web performance and identifies several factors that can cause delays, including issues with client hardware/software, server hardware/software, and network connectivity. It notes that performance issues cost companies money by hurting the user experience, conversion rates, and other metrics. The document then outlines several laws of web performance and provides tips for optimizing performance on both the server-side and client-side of web applications and websites.
This document discusses lessons learned from managing a large WordPress multisite network with over 8,500 sites and 77,000 users. Key points include how to setup and install multisite quickly, pros and cons to consider, when multisite is a good fit, and challenges of supporting a very large network at a university including infrastructure, selecting plugins and themes, ongoing security, and tools used for monitoring, debugging and version control. Managing a large multisite installation requires keeping things simple and scalable as well as thinking long term about how design decisions will impact the network over time.
The document discusses WordPress themes and the theme review process. It provides details on the themes directory, the WordPress Theme Review Team (WPTRT) which reviews themes, and the theme review process. Key points include that there are over 1700 free themes in the directory with hundreds of millions of downloads, and themes must pass review based on guidelines before being included. It offers tips for theme developers such as using child themes, following best practices, and using the appropriate licenses for code.
WordPress Code Architecture - revising the code architecture of the WordPress CMS and comparing it to the design patterns and core decisions in other CMS and frameworks based on PHP, Python, Ruby, Java and C#.
WordPress as a CMS - Case Study of an Organizational IntranetTech Liminal
This document discusses using WordPress as a content management system for an organizational intranet. The goals of the project were to improve information architecture, usability, search, and allow more decentralized content control. WordPress Multisite was implemented with custom themes and plugins. Key features included aggregated feeds and events across sites, standardized branding, and an anonymous feedback blog. Lessons learned included the need for table editing, ongoing training, custom CSS classes, and ensuring server performance for a large WordPress Multisite installation.
Microsoft Azure DocumentDB - Global Azure Bootcamp 2016Sunny Sharma
Microsoft Azure DocumentDB is a fully managed NoSQL database service that supports JSON documents and SQL queries. It provides tunable consistency levels from strong to eventual, excellent search capabilities without SQL, and a REST API. Documents are stored in collections and addressed through a unique ID. Operations include CRUD and querying documents. DocumentDB also supports server-side JavaScript for stored procedures, triggers, and user-defined functions.
.NET is a collection of libraries and frameworks for building applications. It includes the Common Language Runtime (CLR) which handles tasks like memory management and code execution. The .NET framework supports many programming languages and allows building different types of applications like web apps, Windows apps, web services, and more. The document provides an overview of .NET fundamentals and architecture, common terminology, and suggests starting with the free Visual Studio Community edition to get started with .NET development.
The document discusses web performance and identifies several factors that can cause delays, including issues with client hardware/software, server hardware/software, and network connectivity. It notes that performance issues cost companies money by hurting the user experience, conversion rates, and other metrics. The document then outlines several laws of web performance and provides tips for optimizing performance on both the server-side and client-side of web applications and websites.
This document discusses lessons learned from managing a large WordPress multisite network with over 8,500 sites and 77,000 users. Key points include how to setup and install multisite quickly, pros and cons to consider, when multisite is a good fit, and challenges of supporting a very large network at a university including infrastructure, selecting plugins and themes, ongoing security, and tools used for monitoring, debugging and version control. Managing a large multisite installation requires keeping things simple and scalable as well as thinking long term about how design decisions will impact the network over time.
Drupal Developer Skills (2012) - DrupalCamp LA 2012Chris Charlton
Does learning to develop for Drupal feel hard? Does the sound of building your own modules both scare & excite you? Fear no more!
This session will dive into specifics of what skills, technologies, and tools Web Developers need to know so as not to fall behind or feel obsolete when dealing with Drupal.
NOTE: This is not a session teaching you how to code a module – other sessions & videos are available for that training.
With this session you will walk away feeling focused about what you need to know, what tools to use, and where everything is! Come see what’s left to learn to become a Drupal Pro.
Covered in this session:
What parts of Drupal do I really need to know? What parts are easy or hard?
What skills & tools do I need to be competitive today? How can I generate repeat business?
How much JavaScript, CSS, or PHP do I really need to know for Drupal?
What modules, software, and tools should I be using? How should I be using my tools?
What skills should I have? What should my resume not be missing?
What skills do Drupal designers have? How do I work with or within a team?
Drupal developer tips
How and where do I keep learning Drupal?
http://2011.drupalcampla.com/sessions/drupal-developer-skills-2012
This document discusses WordPress coding standards for writing plugins. It recommends following WordPress coding standards to improve code readability, avoid errors, and ensure consistency. The standards cover HTML, CSS, JavaScript, PHP, naming conventions including prefixing everything, documentation using DocBlocks, and organizing plugin files into folders for admin, includes, languages and public functionality. Following these standards makes the code easier to understand, modify and automatically generate documentation.
Have you ever cried yourself to sleep unable to find the cause of a horrendous bug in your WordPress site? Cry no more, your tears will be reshaped as blinding swords as we explore uncharted territories laced with mystical creatures.
Debugging is an often avoided topic due to the uncertainty of how best to accomplish it and the lack of powerful introspective tools. This talk will explore new territory and showcase tools that help you debug complex and difficult issues in your WordPress site.
- Drupal 7 is an upcoming release that focuses on improving the administrative interface, security, and internationalization. It includes changes like reorganizing administrative menus, improving image and file handling, adding new field types, and upgrading default modules. The release aims to provide a better out-of-box experience for both administrators and end users. Development is led by the Drupal community to ensure contributed modules are ready upon release.
The document discusses best practices for developing websites using WordPress. It covers using WordPress as a content management system and blogging platform. It also summarizes using WordPress features like custom post types, custom fields, options API, transients API, and interacting with APIs. The document advocates following WordPress standards and using its built-in functions over directly modifying code or adding custom tables. It provides resources for learning more about WordPress development.
Isomorphic WordPress Applications with NodeifyWPTaylor Lovett
- NodeifyWP is a framework that allows developers to build isomorphic web applications using WordPress, PHP, and Node.js.
- It uses PHP to execute JavaScript (Node.js) on the server, enabling the use of modern front-end technologies like React while retaining WordPress for content management.
- Setting up NodeifyWP in a theme involves requiring the framework, registering server-side and post-specific JavaScript, and rendering content through a REST API endpoint.
Adobe CQ5 for Developers - IntroductionTekno Point
This document provides an introduction to Adobe Experience Manager (AEM), formerly known as CQ5. It discusses key aspects of AEM including its use of OSGi and JCR technologies, templates and components for authoring content, and workflows for automating processes. The document also provides an overview of installing and setting up an AEM author instance, as well as related terms.
Drupal Security from Drupalcamp Cologne 2009Gábor Hojtsy
Drupal is designed with security in mind through secure APIs and features to prevent common issues like XSS and CSRF attacks. However, open source software can still be vulnerable if not configured securely, with 67% of major websites having XSS issues. While Drupal core and major contributed modules receive security support, users are responsible for securely configuring permissions and input formats. The volunteer Drupal security team works to ensure the best security for Drupal and contributed modules through design, education and fixing vulnerabilities.
This document discusses WordPress plugins, security, and upgrades. It provides an overview of plugins and their functionality, as well as suggestions for free and paid plugins. It then covers security best practices like keeping software updated, using strong passwords, and installing security plugins. The document also discusses backups, SEO, and the importance of upgrading WordPress, themes, and plugins regularly while testing compatibility. It aims to educate users on extending and securing their WordPress sites.
This document summarizes a presentation about plugins in WordPress. It discusses the differences between plugins and widgets, provides examples of popular free plugins for various functions like comments, caching, security, and backups. It also reviews how to find, install, and manage plugins safely. Backup of sites is recommended, and security best practices are outlined like keeping software updated and using strong unique passwords.
1) WordPress is an open source content management system (CMS) that can be used to build websites and blogs. It exists in two versions - WordPress.org which is open source and customizable, and WordPress.com which is hosted for free but with limited customization options.
2) The presentation discusses how to get involved with WordPress by creating themes and plugins, and participating in the large WordPress community through forums, contributing code, and attending events.
3) Businesses can also make money through WordPress by creating and selling popular plugins and themes, hiring out WordPress development services, or hosting private WordPress sites.
This document provides an overview of tips and tricks for using WordPress. It discusses plugins, themes, security, backups, and SEO. For plugins, it recommends testing plugins and being skeptical of any not on WordPress.org. For themes, it discusses finding reputable themes, testing themes, and using child themes to modify parent themes. It also covers securing WordPress through regular updates, strong passwords, and plugins like Akismet and Wordfence. Backups should be automated and stored offsite. SEO tips include using good themes/plugins and Google Webmaster Tools. Caching can improve performance through plugins like W3 Total Cache. Hosting recommendations include HostGator and WP-Engine.
Taylor Lovett presented on the new JSON REST API for WordPress. The API uses JSON and REST principles to provide an intuitive and easy to use interface for WordPress content. It allows users to create, read, update and delete WordPress content like posts, pages, users and media through HTTP requests. The API is extensible and developers can build custom routes and endpoints. It provides a powerful way to interact with WordPress programmatically and will soon be integrated into the WordPress core.
This document discusses building isomorphic web applications using WordPress and Node.js. It introduces NodeifyWP, a framework that allows using PHP to execute JavaScript (Node.js) on the server, enabling WordPress sites to benefit from modern front-end technologies like React.js. An example theme called Twenty Sixteen React is provided to demonstrate integrating NodeifyWP with React and Redux to create an isomorphic WordPress site.
SenchaCon 2016: Being Productive with the New Sencha Fiddle - Mitchell Simoens Sencha
Would you like to share code or quickly test some code? Before Sencha Fiddle, there was no good way to quickly run Ext JS code. Since its launch, Sencha Fiddle has changed the way we save code in the cloud and share it. In this session, you'll learn what Fiddle is, its new features, and how you can use it to be more productive.
This document outlines an agenda to introduce REST and building APIs with ASP.NET Web API. It begins with a quick demo, then discusses what REST is as an architectural style based on HTTP using resources and verbs. It covers HTTP concepts like requests, responses and status codes. Finally, it demonstrates building a REST API with ASP.NET Web API and discusses advantages of REST like using the well-defined HTTP protocol and enabling caching.
This document introduces CodeIgniter, an open source PHP web application framework based on the Model-View-Controller (MVC) pattern. It discusses why MVC frameworks are useful for building enterprise web applications. CodeIgniter provides features like routing, database access, form validation and security filtering to help structure applications and make tasks less tedious. The document outlines CodeIgniter's directory structure, controllers, views, helpers and libraries to demonstrate how it implements the MVC pattern.
WP-CLI is an awesome WordPress plugin that can be used to automate a bunch of difficult WordPress tasks. This presentation walks you through basic WP-CLI commands and creating custom commands.
Modernizing WordPress Search with ElasticsearchTaylor Lovett
WordPress search is notoriously lacking. Using Elasticsearch and the 10up WordPress plugin ElasticPress, we can do amazing things with search very performantly.
The document summarizes best practices for WordPress development. It recommends leveraging WordPress core functionality through APIs and hooks, contributing to core, internationalizing code, and following coding standards to write clean, readable code. It also emphasizes allowing others to hook into code through actions and filters and the importance of sanitization, escaping and security.
Plugin Development @ WordCamp Norway 2014Barry Kooij
This document summarizes a presentation on plugin development for WordPress. The presentation covers topics like plugin architecture, coding standards, documentation, testing, security, internationalization, and more. It emphasizes best practices for WordPress plugin development like using the WordPress API, hooks and filters, object-oriented programming, documentation, testing, and security practices like sanitizing data.
Drupal Developer Skills (2012) - DrupalCamp LA 2012Chris Charlton
Does learning to develop for Drupal feel hard? Does the sound of building your own modules both scare & excite you? Fear no more!
This session will dive into specifics of what skills, technologies, and tools Web Developers need to know so as not to fall behind or feel obsolete when dealing with Drupal.
NOTE: This is not a session teaching you how to code a module – other sessions & videos are available for that training.
With this session you will walk away feeling focused about what you need to know, what tools to use, and where everything is! Come see what’s left to learn to become a Drupal Pro.
Covered in this session:
What parts of Drupal do I really need to know? What parts are easy or hard?
What skills & tools do I need to be competitive today? How can I generate repeat business?
How much JavaScript, CSS, or PHP do I really need to know for Drupal?
What modules, software, and tools should I be using? How should I be using my tools?
What skills should I have? What should my resume not be missing?
What skills do Drupal designers have? How do I work with or within a team?
Drupal developer tips
How and where do I keep learning Drupal?
http://2011.drupalcampla.com/sessions/drupal-developer-skills-2012
This document discusses WordPress coding standards for writing plugins. It recommends following WordPress coding standards to improve code readability, avoid errors, and ensure consistency. The standards cover HTML, CSS, JavaScript, PHP, naming conventions including prefixing everything, documentation using DocBlocks, and organizing plugin files into folders for admin, includes, languages and public functionality. Following these standards makes the code easier to understand, modify and automatically generate documentation.
Have you ever cried yourself to sleep unable to find the cause of a horrendous bug in your WordPress site? Cry no more, your tears will be reshaped as blinding swords as we explore uncharted territories laced with mystical creatures.
Debugging is an often avoided topic due to the uncertainty of how best to accomplish it and the lack of powerful introspective tools. This talk will explore new territory and showcase tools that help you debug complex and difficult issues in your WordPress site.
- Drupal 7 is an upcoming release that focuses on improving the administrative interface, security, and internationalization. It includes changes like reorganizing administrative menus, improving image and file handling, adding new field types, and upgrading default modules. The release aims to provide a better out-of-box experience for both administrators and end users. Development is led by the Drupal community to ensure contributed modules are ready upon release.
The document discusses best practices for developing websites using WordPress. It covers using WordPress as a content management system and blogging platform. It also summarizes using WordPress features like custom post types, custom fields, options API, transients API, and interacting with APIs. The document advocates following WordPress standards and using its built-in functions over directly modifying code or adding custom tables. It provides resources for learning more about WordPress development.
Isomorphic WordPress Applications with NodeifyWPTaylor Lovett
- NodeifyWP is a framework that allows developers to build isomorphic web applications using WordPress, PHP, and Node.js.
- It uses PHP to execute JavaScript (Node.js) on the server, enabling the use of modern front-end technologies like React while retaining WordPress for content management.
- Setting up NodeifyWP in a theme involves requiring the framework, registering server-side and post-specific JavaScript, and rendering content through a REST API endpoint.
Adobe CQ5 for Developers - IntroductionTekno Point
This document provides an introduction to Adobe Experience Manager (AEM), formerly known as CQ5. It discusses key aspects of AEM including its use of OSGi and JCR technologies, templates and components for authoring content, and workflows for automating processes. The document also provides an overview of installing and setting up an AEM author instance, as well as related terms.
Drupal Security from Drupalcamp Cologne 2009Gábor Hojtsy
Drupal is designed with security in mind through secure APIs and features to prevent common issues like XSS and CSRF attacks. However, open source software can still be vulnerable if not configured securely, with 67% of major websites having XSS issues. While Drupal core and major contributed modules receive security support, users are responsible for securely configuring permissions and input formats. The volunteer Drupal security team works to ensure the best security for Drupal and contributed modules through design, education and fixing vulnerabilities.
This document discusses WordPress plugins, security, and upgrades. It provides an overview of plugins and their functionality, as well as suggestions for free and paid plugins. It then covers security best practices like keeping software updated, using strong passwords, and installing security plugins. The document also discusses backups, SEO, and the importance of upgrading WordPress, themes, and plugins regularly while testing compatibility. It aims to educate users on extending and securing their WordPress sites.
This document summarizes a presentation about plugins in WordPress. It discusses the differences between plugins and widgets, provides examples of popular free plugins for various functions like comments, caching, security, and backups. It also reviews how to find, install, and manage plugins safely. Backup of sites is recommended, and security best practices are outlined like keeping software updated and using strong unique passwords.
1) WordPress is an open source content management system (CMS) that can be used to build websites and blogs. It exists in two versions - WordPress.org which is open source and customizable, and WordPress.com which is hosted for free but with limited customization options.
2) The presentation discusses how to get involved with WordPress by creating themes and plugins, and participating in the large WordPress community through forums, contributing code, and attending events.
3) Businesses can also make money through WordPress by creating and selling popular plugins and themes, hiring out WordPress development services, or hosting private WordPress sites.
This document provides an overview of tips and tricks for using WordPress. It discusses plugins, themes, security, backups, and SEO. For plugins, it recommends testing plugins and being skeptical of any not on WordPress.org. For themes, it discusses finding reputable themes, testing themes, and using child themes to modify parent themes. It also covers securing WordPress through regular updates, strong passwords, and plugins like Akismet and Wordfence. Backups should be automated and stored offsite. SEO tips include using good themes/plugins and Google Webmaster Tools. Caching can improve performance through plugins like W3 Total Cache. Hosting recommendations include HostGator and WP-Engine.
Taylor Lovett presented on the new JSON REST API for WordPress. The API uses JSON and REST principles to provide an intuitive and easy to use interface for WordPress content. It allows users to create, read, update and delete WordPress content like posts, pages, users and media through HTTP requests. The API is extensible and developers can build custom routes and endpoints. It provides a powerful way to interact with WordPress programmatically and will soon be integrated into the WordPress core.
This document discusses building isomorphic web applications using WordPress and Node.js. It introduces NodeifyWP, a framework that allows using PHP to execute JavaScript (Node.js) on the server, enabling WordPress sites to benefit from modern front-end technologies like React.js. An example theme called Twenty Sixteen React is provided to demonstrate integrating NodeifyWP with React and Redux to create an isomorphic WordPress site.
SenchaCon 2016: Being Productive with the New Sencha Fiddle - Mitchell Simoens Sencha
Would you like to share code or quickly test some code? Before Sencha Fiddle, there was no good way to quickly run Ext JS code. Since its launch, Sencha Fiddle has changed the way we save code in the cloud and share it. In this session, you'll learn what Fiddle is, its new features, and how you can use it to be more productive.
This document outlines an agenda to introduce REST and building APIs with ASP.NET Web API. It begins with a quick demo, then discusses what REST is as an architectural style based on HTTP using resources and verbs. It covers HTTP concepts like requests, responses and status codes. Finally, it demonstrates building a REST API with ASP.NET Web API and discusses advantages of REST like using the well-defined HTTP protocol and enabling caching.
This document introduces CodeIgniter, an open source PHP web application framework based on the Model-View-Controller (MVC) pattern. It discusses why MVC frameworks are useful for building enterprise web applications. CodeIgniter provides features like routing, database access, form validation and security filtering to help structure applications and make tasks less tedious. The document outlines CodeIgniter's directory structure, controllers, views, helpers and libraries to demonstrate how it implements the MVC pattern.
WP-CLI is an awesome WordPress plugin that can be used to automate a bunch of difficult WordPress tasks. This presentation walks you through basic WP-CLI commands and creating custom commands.
Modernizing WordPress Search with ElasticsearchTaylor Lovett
WordPress search is notoriously lacking. Using Elasticsearch and the 10up WordPress plugin ElasticPress, we can do amazing things with search very performantly.
The document summarizes best practices for WordPress development. It recommends leveraging WordPress core functionality through APIs and hooks, contributing to core, internationalizing code, and following coding standards to write clean, readable code. It also emphasizes allowing others to hook into code through actions and filters and the importance of sanitization, escaping and security.
Plugin Development @ WordCamp Norway 2014Barry Kooij
This document summarizes a presentation on plugin development for WordPress. The presentation covers topics like plugin architecture, coding standards, documentation, testing, security, internationalization, and more. It emphasizes best practices for WordPress plugin development like using the WordPress API, hooks and filters, object-oriented programming, documentation, testing, and security practices like sanitizing data.
Given at zendcon 2008 - my very first conference talk. And I did it way too fast. A lot of the information about these extensions is surprisingly relevant.
This workshop is a hands-on training where a real Zend Framework application is used as an example to start improving QA using tools to test, document and perform software metric calculations to indicate where the software can be improved. I also explain the reports produced by a CI system.
Slides from a presentation that David Lopez (@lopezator) and me made for the students of the University of the Basque Country (UPV/EHU) where we talk about current technologies and methodologies used in professional web development.
CSS3, jQuery, Composer, MVC, Clean Code, Git, etc. are different items we talked about.
Some examples shown in the presentation available at:
http://ojoven.es/labs/ehu2014/
Whatever it takes - Fixing SQLIA and XSS in the processguest3379bd
This document discusses techniques for preventing SQL injection and cross-site scripting (XSS) vulnerabilities. It proposes using prepared statements with separate data and control planes as a "safe query object" approach. It also discusses policy-based sanitization of HTML and focusing code reviews on defect detection through annotating suspicious code regions. The overall goal is to help developers adopt architectures and techniques that thoroughly apply technical solutions to recognize and fix security weaknesses.
This document discusses automated acceptance testing for ASP.NET applications. It begins with a demonstration of using Selenium WebDriver to automate a Google search. The document then covers topics like the testing pipeline, challenges with real-world testing, focusing tests on solving specific pain points, and designing UI for testability. It emphasizes that UI tests should validate scenarios rather than individual actions and should focus on the most critical tests. The document also discusses tools, techniques, and strategies for testing databases, legacy systems, and more.
This document discusses JavascriptMVC, an alternative Javascript MVC framework to BackboneJS. It provides an overview of JavascriptMVC's features such as MIT licensing, clear documentation, and providing an almost total solution for building web applications. Potential pros include the licensing, documentation, and comprehensive features. Potential cons include it being less well known and having fewer online resources than BackboneJS in Taiwan. Examples of how it handles classes, CSS, data loading/validation, and views are also provided.
This document provides an introduction to Node.js, a framework for building scalable server-side applications with asynchronous JavaScript. It discusses what Node.js is, how it uses non-blocking I/O and events to avoid wasting CPU cycles, and how external Node modules help create a full JavaScript stack. Examples are given of using Node modules like Express for building RESTful APIs and Socket.IO for implementing real-time features like chat. Best practices, limitations, debugging techniques and references are also covered.
This document provides an overview of quality assurance for PHP projects. It discusses the importance of revision control, documentation, testing, and automation in QA. Revision control systems like SVN and Git are recommended for team development and tracking code versions. PHP Lint is introduced for syntax checking files from the command line. Documenting code with PHPDoc is suggested. Unit testing forms and models is demonstrated using PHPUnit. Validation, filtering, and sanitizing user input is important for protection against exploits. Overall the document promotes establishing strong quality practices like testing, revision control, and documentation for PHP projects.
DISQUS is a comment system that handles high volumes of traffic, with up to 17,000 requests per second and 250 million monthly visitors. They face challenges in unpredictable spikes in traffic and ensuring high availability. Their architecture includes over 100 servers split between web servers, databases, caching, and load balancing. They employ techniques like vertical and horizontal data partitioning, atomic updates, delayed signals, consistent caching, and feature flags to scale their large Django application.
The document discusses best practices for WordPress plugin development. It recommends starting with documentation, pairing with others during development, turning on debugging, using standard WordPress hooks and APIs, validating input for security, publishing plugins to the WordPress repository, and keeping plugins updated for new WordPress versions. The goal is to build well-designed, secure plugins that integrate smoothly with WordPress.
This document discusses why Node.js is a good choice for building scalable web applications. Node.js uses an event-driven, non-blocking I/O model that allows for highly scalable web servers. It also has a simple API based around callbacks and handles HTTP requests directly. Additionally, Node.js benefits from a large ecosystem of open source libraries and the npm package manager. The document provides examples of how Node.js can be used to build stateless, rapidly deployable servers and packages applications in a way that supports continuous deployment.
Javascript and first-class citizenry: require.js & node.js
Javascript on web pages is ubiquitous and its problems are legendary. Javascript, seen as a second-class code citizen, is usually hacked together even by seasoned developers. New libraries (jQuery, prototype, backbone, knockout, underscore) and runtime tools (firebug, jasmine) look like they solve many problems - and they do. But they still leave poorly written code as just that. One key problem is that all javascript code lives globally and this results in poorly managed, tested and delivered code.
In this session, I will illustrate that we can treat javascript as a first-class citizen using with require.js and node.js: it can be modular, encapsulated and easily unit tested and added to continuous integration cycle. The dependencies between javascript modules can also be managed and packaged just like in C# and Java. In the end, we can resolve many javascript difficulties at compile time rather than waiting until runtime.
Refactoring @ Mindvalley: Smells, Techniques and PatternsTristan Gomez
Every week my team commits really good, clean code. I decided to get the best of the commits and showcase what makes them good, what smells they address, and what techniques they used.
This document provides best practices for WordPress development including caching, database reads/writes, search, browser performance, maintainability, security, third party code, and teams. It recommends using Redis for caching, understanding WP_Query parameters, writing modular feature plugins, thorough documentation, testing, sanitizing inputs, using nonces, and conducting internal code reviews.
Search for Vulnerabilities Using Static Code AnalysisAndrey Karpov
Vulnerabilities are the same things as common errors. Why do we distinguish them? Do this, if you want to earn more money. CWE - Common Weakness Enumeration. CVE - Common Vulnerabilities and Exposures. Now using Valgrind you're searching not for a memory leak, but for a denial of service.
Appsec usa2013 js_libinsecurity_stefanodipaoladrewz lin
This document summarizes Stefano di Paola's talk on security issues with JavaScript libraries. It discusses how jQuery's $() method can be considered a "sink" that executes HTML passed to it, including examples of XSS via jQuery selectors and AJAX calls. It also covers problems with JSON parsing regular expressions, AngularJS expression injection, and credentials exposed in URLs. Solutions proposed include validating all input, auditing third-party libraries, and moving away from approaches like eval() that execute untrusted code.
Tools and Tips for Moodle Developers - #mootus16Dan Poltawski
This document provides tools and tips for Moodle developers. It discusses various debugging techniques for PHP and JavaScript code using print statements and log functions. It also covers profiling performance, running automated tests with PHPUnit and Behat, linting code quality, and testing email functionality and accessibility. The Moodle Development Kit (MDK) and moodle-plugin-ci project are introduced to help integrate development tasks and testing into continuous integration workflows.
Why Does an eCommerce Store Cost 200 to 100K And More?Mario Peshev
The document discusses factors that influence the cost of developing an eCommerce website, which can range from 200-100,000 BGN. Key factors include whether the site is hosted or custom-built, the components included like design, hosting, integrations, marketing, logistics, shopping carts and payment processing, and ongoing maintenance needs. The document provides examples of costs for different elements and recommends choosing tools that fit your budget and goals while prioritizing user experience and customer information security.
2020 is just around the corner. What innovations should we expect in the coming year?
The evolution of Gutenberg is progressing quickly, and in the coming year or two we'll end up with the ability to edit most of the WordPress front-end experience (including menus, widget areas, headers, and footers). Collaboration tools and multilingual support are also in the works in the future.
Managed WordPress hosts are going strong and hosting more high-scale websites. The pioneer in the space Pagely is working with some of the leading vendors on the market.
WooCommerce is picking up after the funding Automattic took a couple months back. Gutenberg support, additional integrations, new payment gateways, extended features for some of the leading plugins.
Modern, WordPress-based applications like Google SiteKit or Pixo Editor are launching for WordPress users. Integrated functionality for 3rd party systems within the WordPress dashboard.
WordPress-specific solutions are also on the rise. Platforms like NitroPack.io provide a complete "automagic" experience for rapidly speeding up your website and improving your pagespeed score a lot.
Here's what else is coming to WordPress for enterprises and growing businesses online.
PHP is often bashed as an outdated programming language that's no longer in use. In fact, 79% of all websites out there are built with PHP, including the 35% of the web using WordPress (developed with PHP as well).
Here are some industry expert quotes regarding PHP I've found notable and worthy of sharing.
The document discusses the results of a study on the impact of climate change on wheat production. Researchers found that higher temperatures and changing precipitation patterns due to climate change will significantly reduce wheat yields across major wheat-producing regions by the end of the century. Reductions in wheat production are projected to range from 6-27% depending on future greenhouse gas emissions and efforts to adapt farming techniques to new climate conditions.
The Future of WordPress And WooCommerceMario Peshev
This document discusses the past, present, and future of WordPress and WooCommerce. It notes that WordPress now powers 34.6% of websites and is the most popular content management system. WooCommerce, which was acquired by Automattic in 2015, is now used by over 76 million downloads to power ecommerce sites. The author believes WooCommerce has the potential to become even more valuable than WordPress itself in the future, as Automattic continues investing in it through additional development, partnerships, and hosted options.
Tips for Successful WordPress Enterprise ProjectsMario Peshev
The pros and cons of working with enterprise clients, approaching and pitching top multinational brands, how to prepare your WordPress technical environment and standardize your processes.
WordPress Architecture for Tech-Savvy ManagersMario Peshev
A technical training going over the WordPress platform from a technical standpoint - the WordPress core model, hooks (actions and filters), the WordPress load cycle, themes and plugins, and an overview of the stability, security, and performance impact.
Business and Monetization Opportunities for DevelopersMario Peshev
My "Business and Monetization Opportunities for Developers" talk from WordCamp Sofia 2016 - discussing different revenue streams for WordPress developers toward the product business model, with tips and tricks on marketing and billing.
Building SaaS with WordPress - WordCamp Netherlands 2016Mario Peshev
My talk on Building Software as a Service solutions on top of WordPress for WordCamp Netherlands 2016.
How to build a scalable WordPress-driven solution on a subscription-based model while catering for scalability and extensibility without limiting the business model of the startup.
Virtual Company - Go Limitless is my guide for beginner and mid-level consultants and entrepreneurs about joining a remote business or creating a distributed virtual company. Our team at DevriX.com consists of 17 virtual contractors and we're constantly leveraging the power of the best virtual employees while focusing only on quality and the actual work.
Mario Peshev discusses various ways to contribute back to the WordPress community beyond contributing code to the WordPress core. These include creating themes, plugins, documentation, and participating in support forums. He notes that the WordPress development process is open and transparent, allowing anyone to submit code and propose features.
WordPress themes present the layout and design of a WordPress site. While free themes are available, premium themes generally offer higher quality, more customization options, and dedicated support. It is important to avoid testing premium themes from untrusted piracy sites due to legal and security risks, and instead purchase themes only from official marketplaces and directories. When choosing a theme, considerations include design, code quality, standards compliance, and compatibility with plugins.
Sass is a CSS extension language created in 2007 that adds powerful features like variables, nested rules, mixins, selector inheritance, and functions. It has two syntax options - Sass syntax and SassCSS syntax. Sass files end in .scss and are compiled into normal .css files. Sass provides many useful functions for working with colors, lists, and strings, and also allows for custom functions to be written in Ruby. Sass can be run from the command line or with a GUI like Compass.
Custom Post Types in the wild (WordCamp Sofia 2012)Mario Peshev
This document discusses custom post types in WordPress. It begins by explaining the difference between standard posts and pages, then introduces custom post types as a way to create new content structures beyond posts and pages. Examples of possible custom post types include products, courses, and real estate listings. The document outlines key aspects of custom post types like custom fields, taxonomies, and the loop. It also mentions plugins that can help manage custom post types and provides an overview of the Views plugin which allows template-based display of custom content types.
Virtual companies allow hiring experts globally through platforms like oDesk. oDesk provides tools to find, manage, and review contractors anywhere in the world. Employers can filter jobs by rating, location, experience and other criteria. The platform syncs communications and provides invoicing to streamline hiring and payments. This flexible model removes constraints of physical offices while maintaining oversight of work through features like time tracking and screen recording.
Build a WordPress theme from HTML5 template @ TelerikMario Peshev
How to build a WordPress theme out of HTML5 template, integrate dynamic components such as menus, sidebars and comment areas and use widget blocks for static sliced content.
at Telerik Academy, 19 Jun 2012
Business 2.0 with WordPress reveals the secrets of making a profit with WordPress. It's target auditory is: entrepreneurs, small business owners, designers and developers. Different approaches for business based on the platform circles - quick, cheap and powerful WP-based website setup or consulting and products for designers and developers.
"NATO Hackathon Winner: AI-Powered Drug Search", Taras KlobaFwdays
This is a session that details how PostgreSQL's features and Azure AI Services can be effectively used to significantly enhance the search functionality in any application.
In this session, we'll share insights on how we used PostgreSQL to facilitate precise searches across multiple fields in our mobile application. The techniques include using LIKE and ILIKE operators and integrating a trigram-based search to handle potential misspellings, thereby increasing the search accuracy.
We'll also discuss how the azure_ai extension on PostgreSQL databases in Azure and Azure AI Services were utilized to create vectors from user input, a feature beneficial when users wish to find specific items based on text prompts. While our application's case study involves a drug search, the techniques and principles shared in this session can be adapted to improve search functionality in a wide range of applications. Join us to learn how PostgreSQL and Azure AI can be harnessed to enhance your application's search capability.
Essentials of Automations: Exploring Attributes & Automation ParametersSafe Software
Building automations in FME Flow can save time, money, and help businesses scale by eliminating data silos and providing data to stakeholders in real-time. One essential component to orchestrating complex automations is the use of attributes & automation parameters (both formerly known as “keys”). In fact, it’s unlikely you’ll ever build an Automation without using these components, but what exactly are they?
Attributes & automation parameters enable the automation author to pass data values from one automation component to the next. During this webinar, our FME Flow Specialists will cover leveraging the three types of these output attributes & parameters in FME Flow: Event, Custom, and Automation. As a bonus, they’ll also be making use of the Split-Merge Block functionality.
You’ll leave this webinar with a better understanding of how to maximize the potential of automations by making use of attributes & automation parameters, with the ultimate goal of setting your enterprise integration workflows up on autopilot.
In our second session, we shall learn all about the main features and fundamentals of UiPath Studio that enable us to use the building blocks for any automation project.
📕 Detailed agenda:
Variables and Datatypes
Workflow Layouts
Arguments
Control Flows and Loops
Conditional Statements
💻 Extra training through UiPath Academy:
Variables, Constants, and Arguments in Studio
Control Flow in Studio
"$10 thousand per minute of downtime: architecture, queues, streaming and fin...Fwdays
Direct losses from downtime in 1 minute = $5-$10 thousand dollars. Reputation is priceless.
As part of the talk, we will consider the architectural strategies necessary for the development of highly loaded fintech solutions. We will focus on using queues and streaming to efficiently work and manage large amounts of data in real-time and to minimize latency.
We will focus special attention on the architectural patterns used in the design of the fintech system, microservices and event-driven architecture, which ensure scalability, fault tolerance, and consistency of the entire system.
Northern Engraving | Nameplate Manufacturing Process - 2024Northern Engraving
Manufacturing custom quality metal nameplates and badges involves several standard operations. Processes include sheet prep, lithography, screening, coating, punch press and inspection. All decoration is completed in the flat sheet with adhesive and tooling operations following. The possibilities for creating unique durable nameplates are endless. How will you create your brand identity? We can help!
How information systems are built or acquired puts information, which is what they should be about, in a secondary place. Our language adapted accordingly, and we no longer talk about information systems but applications. Applications evolved in a way to break data into diverse fragments, tightly coupled with applications and expensive to integrate. The result is technical debt, which is re-paid by taking even bigger "loans", resulting in an ever-increasing technical debt. Software engineering and procurement practices work in sync with market forces to maintain this trend. This talk demonstrates how natural this situation is. The question is: can something be done to reverse the trend?
"Scaling RAG Applications to serve millions of users", Kevin GoedeckeFwdays
How we managed to grow and scale a RAG application from zero to thousands of users in 7 months. Lessons from technical challenges around managing high load for LLMs, RAGs and Vector databases.
Dandelion Hashtable: beyond billion requests per second on a commodity serverAntonios Katsarakis
This slide deck presents DLHT, a concurrent in-memory hashtable. Despite efforts to optimize hashtables, that go as far as sacrificing core functionality, state-of-the-art designs still incur multiple memory accesses per request and block request processing in three cases. First, most hashtables block while waiting for data to be retrieved from memory. Second, open-addressing designs, which represent the current state-of-the-art, either cannot free index slots on deletes or must block all requests to do so. Third, index resizes block every request until all objects are copied to the new index. Defying folklore wisdom, DLHT forgoes open-addressing and adopts a fully-featured and memory-aware closed-addressing design based on bounded cache-line-chaining. This design offers lock-free index operations and deletes that free slots instantly, (2) completes most requests with a single memory access, (3) utilizes software prefetching to hide memory latencies, and (4) employs a novel non-blocking and parallel resizing. In a commodity server and a memory-resident workload, DLHT surpasses 1.6B requests per second and provides 3.5x (12x) the throughput of the state-of-the-art closed-addressing (open-addressing) resizable hashtable on Gets (Deletes).
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor IvaniukFwdays
At this talk we will discuss DDoS protection tools and best practices, discuss network architectures and what AWS has to offer. Also, we will look into one of the largest DDoS attacks on Ukrainian infrastructure that happened in February 2022. We'll see, what techniques helped to keep the web resources available for Ukrainians and how AWS improved DDoS protection for all customers based on Ukraine experience
ScyllaDB is making a major architecture shift. We’re moving from vNode replication to tablets – fragments of tables that are distributed independently, enabling dynamic data distribution and extreme elasticity. In this keynote, ScyllaDB co-founder and CTO Avi Kivity explains the reason for this shift, provides a look at the implementation and roadmap, and shares how this shift benefits ScyllaDB users.
"Choosing proper type of scaling", Olena SyrotaFwdays
Imagine an IoT processing system that is already quite mature and production-ready and for which client coverage is growing and scaling and performance aspects are life and death questions. The system has Redis, MongoDB, and stream processing based on ksqldb. In this talk, firstly, we will analyze scaling approaches and then select the proper ones for our system.
The Microsoft 365 Migration Tutorial For Beginner.pptxoperationspcvita
This presentation will help you understand the power of Microsoft 365. However, we have mentioned every productivity app included in Office 365. Additionally, we have suggested the migration situation related to Office 365 and how we can help you.
You can also read: https://www.systoolsgroup.com/updates/office-365-tenant-to-tenant-migration-step-by-step-complete-guide/
Introduction of Cybersecurity with OSS at Code Europe 2024Hiroshi SHIBATA
I develop the Ruby programming language, RubyGems, and Bundler, which are package managers for Ruby. Today, I will introduce how to enhance the security of your application using open-source software (OSS) examples from Ruby and RubyGems.
The first topic is CVE (Common Vulnerabilities and Exposures). I have published CVEs many times. But what exactly is a CVE? I'll provide a basic understanding of CVEs and explain how to detect and handle vulnerabilities in OSS.
Next, let's discuss package managers. Package managers play a critical role in the OSS ecosystem. I'll explain how to manage library dependencies in your application.
I'll share insights into how the Ruby and RubyGems core team works to keep our ecosystem safe. By the end of this talk, you'll have a better understanding of how to safeguard your code.
Conversational agents, or chatbots, are increasingly used to access all sorts of services using natural language. While open-domain chatbots - like ChatGPT - can converse on any topic, task-oriented chatbots - the focus of this paper - are designed for specific tasks, like booking a flight, obtaining customer support, or setting an appointment. Like any other software, task-oriented chatbots need to be properly tested, usually by defining and executing test scenarios (i.e., sequences of user-chatbot interactions). However, there is currently a lack of methods to quantify the completeness and strength of such test scenarios, which can lead to low-quality tests, and hence to buggy chatbots.
To fill this gap, we propose adapting mutation testing (MuT) for task-oriented chatbots. To this end, we introduce a set of mutation operators that emulate faults in chatbot designs, an architecture that enables MuT on chatbots built using heterogeneous technologies, and a practical realisation as an Eclipse plugin. Moreover, we evaluate the applicability, effectiveness and efficiency of our approach on open-source chatbots, with promising results.
2. Mario Peshev
• @no_fear_inc
• WordPress Ambassador at
• WordPress Engineer and
Consultant
• Open Source Addict
• Cofficer
3. What is Debugging?
According to Wikipedia:
“Debugging is a methodical process of
finding and reducing the number of bugs, or
defects, in a computer program or a piece of
electronic hardware, thus making it behave as
expected.”
http://en.wikipedia.org/wiki/Debugging
4. Why Debug?
Friends don’t let friends work in a messed-up
environment.
There are enough tools doing the heavy lifting.
9. PHP logging
Set some error reporting rules:
ini_set('log_errors',TRUE);
ini_set('error_reporting',E_ALL);
ini_set('error_log', '/tmp/wp_error_log.txt');
Get frontend feedback on local sites:
ini_set('display_errors', TRUE);
10. Xdebug
“Xdebug is a PHP extension which provides
debugging and profiling capabilities.”
Official Xdebug Website
18. Debugging AJAX (2)
WordPress has built-in AJAX helpers
• Such as wp_send_json
• The wp JS object
Use these hooks for your AJAX callbacks:
wp_ajax_{$someaction}
wp_ajax_nopriv_{$someaction}
Mind your JavaScript
25. WP_DEBUG
Global switch for debugging capabilities
define( 'WP_DEBUG', true );
Store log messages in debug.log file in wp-content/
define( 'WP_DEBUG_LOG', true );
Display log messages on the site
define( 'WP_DEBUG_DISPLAY', true );
26. SCRIPT_DEBUG
“SCRIPT_DEBUG is a related constant that
will force WordPress to use the “dev”
versions of core CSS and Javascript files
rather than the minified versions that are
normally loaded. This is useful when you are
testing modifications to any built-in .js or .css
files. Default is false.”
define( 'SCRIPT_DEBUG', true );
27. SAVEQUERIES
“The SAVEQUERIES definition saves the database queries to an
array and that array can be displayed to help analyze those
queries. The information saves each query, what function called
it, and how long that query took to execute.”
define( 'SAVEQUERIES', true );
You can list $wpdb errors from a global array:
global $EZSQL_ERROR; // array with errors
Also $wpdb->show_errors()
30. The ‘all’ hook
add_action( 'all', 'hacky_all_hooks' );
function hacky_all_hooks() {
var_dump( current_filter() );
}
Outputs all hooks
You can disable hooks or add functions with
configurable priority
40. WP-CLI
As per the WP-CLI website:
“WP-CLI is a set of command-line tools for
managing WordPress installations. You can update
plugins, set up multisite installs and much more, without
using a web browser.”
Testing, debugging and automation are much easier
42. Host resolution
Mapping domain names to local websites
Add a VirtualHost with Apache
Map the hostname at the hosts file accordingly
127.0.0.1 wp2.me
Once ready, deploy to server
http://en.wikipedia.org/wiki/Hosts_(file)