August 31, 2017 — Synopsis: Request a page on a WordPress-powered website, and WordPress responds roughly as follows. Core libraries are loaded, followed by plugins. The URL is parsed to determine which items are being requested from the database, and a corresponding theme template is selected. The HTML is then rendered and sent to the browser.
When building client sites or advanced plugins, it’s often necessary to intervene in this process: to perform an early redirect, to modify the rules for parsing URLs, to load an alternate theme template. In this talk, I’ll outline some of the key places where you can (and where you shouldn’t!) interrupt and modify WordPress’s loading process for your purposes.
June 21, 2017 — “Code is Poetry” is a cute motto. It’s also quite false.
The spirit of the slogan is harmless enough. It foregrounds the easy-to-overlook fact that software is written by real people. And it provides some solace to the software developer who is looking for soulful validation of what often feels like a rote, boring, soulless job.
But code is not poetry, and coders who considers themselves “poets” risk doing a disservice to themselves, and to the software they’re engaged in building. Art is beautiful, and we want our software to be beautiful as well. But, in the service of beauty, art is often inert, inscrutable, ambiguous – hardly qualities of good code. Perhaps more importantly, software developers invested in an image of themselves as artists are more likely to shun collaboration, iteration, and criticism, an attitude that’s especially harmful in free software communities.
By breaking down the myth of the code poet, I hope to find some new metaphors that we software developers can embrace for justifying to ourselves the work that we do.
December 20, 2015 — The headline feature of WordPress 2.3 was what Matt called “native tagging support”. The taxonomy architecture that supported tags in WP 2.3 – an abstraction of the old Category functionality – is a critical component of how WordPress turned from a blogging platform to the more generalized content management system that it is today.
But this evolution has not always been smooth sailing. There was significant debate over how (and whether) WordPress’s general taxonomy framework should work. And the database schema that ultimately shipped in version 2.3 had technical ramifications that took several years to become fully apparent.
A close look at these problems, and how the WordPress team is addressing them, contains some useful lessons on how WP deals with breaking changes, the importance of unit tests and developer documentation, and how to weigh backward compatibility against future platform growth.
November 6, 2014 — In this presentation, I’ll address both the *why* and the *how* of contributing while freelancing. I’ll lay out both an economic and a philosophical argument for why freelancers ought to budget for time on the parent projects. And I’ll talk about some concrete strategies for making the process less painful than it might seem at first glance. I’ll use myself as a case study, and talk about how my yearly earnings have steadily increased at the same time that the proportion of my working week spent on client work has actually gone *down*, to the extent that I spend over 50% of my time on free software work that I’m not paid for directly.
October 31, 2014 — This talk will present a number of arguments for why WordPress professionals ought to volunteer time to the project, arguments that will focus on practical and financial considerations rather than on moral ones. Boone Gorges will argue that the WordPress contributor pool is too concentrated, in a way that has the potential to do disservice to people who specialize in WordPress at the freelance and small-business level. Boone also outlines several concrete strategies for organizing one’s contributions in such a way as to minimize financial sacrifices.
December 10, 2013 — BuddyPress is great for building niche community sites. But, in the hands of the right developer, BP can power much more than just social networks. The Activity component is a prime example of this flexibility.
bp-activity provides a rich API for storing, retrieving, and displaying a wide variety of transactional data. BP itself uses this API for tracking events of a social nature – “Boone and John became friends”, “Boone updated his profile”, etc. But bp-activity is flexible enough to store metadata about, say, e-commerce transactions or RSS items. In this way, the Activity stream defines a standardized schema and set of API functions for querying various types of data that may itself be stored in mutually incompatible ways.
This presentation will give developers an overview of the Activity component, including its data schema, the CRUD methods provided by the bp-activity API, and the activity metadata functions. We’ll talk about
how any WordPress plugin can support the Activity stream as a progressive enhancement. And we’ll discuss one or two real-life examples of Activity being used in innovative ways.
November 9, 2013 — This session is a panel discussion with audience questions about BuddyPress with Tammie Lister, John James Jacoby, Boone Gorges, Paul Gibbs and Raymond Ho.