10up contributes MathML support to Google AMP

Last year, we found ourselves implementing Google AMP for a client who often includes content with mathematical formulas. The formulas were implemented using the open MathML standard, by way of the open source, JavaScript-based MathJax engine. Working around AMP’s JavaScript restriction, we put the formulas into amp-iframe components, which allow for arbitrary JavaScript execution. This workaround posed some limitations that compromised the design: formulas could not be displayed inline (inside of a paragraph), creating a slightly awkward aesthetic that didn’t quite match up with the “full” site’s presentation.

As a regular open source contributor committed to making a better web, it seemed to me that a native AMP implementation of the MathML standard would solve our client’s layout problem and help other developers and site owners. After a bit of background research, I opened an issue on Google’s open source AMP HTML project.

With a prompt and warm welcome, Google’s team accepted my feature request. This being an open source project, I volunteered to help; my offer was greeted with enthusiasm and some tips.

Formulas in iFrames and in-line

Read More

Google Chrome to aggressively enforce Better Ad Standards

As announced in June, beginning February 15th Chrome will remove all ads on websites that do not meet the standards of the Coalition for Better Ads. Sites will have 30 days to address any issues flagged in Google’s compliance report before Chrome begins removing ads.

Google started this initiative in response to a report suggesting that poor ad experiences are responsible for a 30% increase in the use of ad blocking extensions across the web, which “reduces the ability for publishers to continue creating free content and threatens the sustainability of the web ecosystem.” Google is also on the board of the Coalition for Better Ad Standards.

The Coalition for Better Ads is made up of leading international trade associations and online media companies committed to supporting “valuable free content, robust journalism and social connections across the internet” through the use of online ads. Their vision for better online ads aligns with Google’s view, and led Google to join the effort to improve how people experience the web. Knowing that consumers are increasingly frustrated with web ads, the Coalition for Better Ads surveyed over 25,000 internet users to create a set of consumer-friendly standards. Google will apply these standards to review a subset of a site’s pages.

Google Ad Experience Report

Read More

New Relic features 10up plugin

New Relic has included our New Relic Reporting for WordPress plugin in New Relic Connect, a directory that collects recommended integrations for New Relic customers. This plugin makes important WordPress data available in New Relic APM and Insights. You can now see Post ID and User ID for logged-in transactions, theme and template information and more, along with your other application data. We hope this increased visibility will lead to more WordPress developers getting the most out of New Relic.

Learn more about the plugin or download it from GitHub.

Improving WordPress Transients

Modern websites can be complex, especially when a high traffic site offers advanced features that need more intensive server processing. WordPress has a few tricks up its sleeve to help developers improve performance, but as we’ve written about before, those tricks don’t always scale.

If you’ve been engineering performant sites with WordPress, you’ve probably encountered the Transients API—a basic caching method. What developers may not know is, at scale, the synchronous way WordPress handles transients can lead to performance issues that can result in a poor user experience. That’s where Async Transients comes in, our open-source Composer library for WordPress transients.
Read More

Ads.txt Manager for WordPress

We’re making it easier and a bit safer to manage the ads.txt whitelist for publishers using WordPress with our newest plugin: Ads.txt Manager for WordPress. Site administrators can add and edit their site’s ads.txt file from the WordPress admin interface, eliminating the need to upload a new copy of ads.txt with every change or correction, and applying some validation to prevent simple ads.txt mistakes.

Read More

Meet WP Snapshots: share complete snapshots of a WordPress setup

We’d like to introduce you to our latest open source project: WP Snapshots.

WP Snapshots is a command line interface (CLI) tool that empowers engineering teams to quickly share WordPress projects – including files and the database. Up until now, onboarding a new engineer onto a project has been tedious: he or she had to setup a local development environment, check out repositories, install matching versions of WordPress and any plugins, track down and import database dumps, copy over uploaded media, search and replace paths in the database, and so on. WP Snapshots turns a painstaking process into a few simple commands.

WP snapshots command example.

Read More

Ads in a Gutenberg World

Think about those times when ads were intrusive as you read a story on the web: perhaps a distracting video ad interrupting paragraphs just as you were becoming immersed in the narrative, or a tone-deaf ad showing up alongside coverage of a somber event. If you’re a content creator or publisher, think about the times when the “it’s a surprise!” nature of programmatically inserted ads has been a pain point.

As content management systems (CMS) increasingly move to “block-based” editors that are much more visually representative of the final state on the front end, we have an opportunity to design tools that better recognize and integrate advertisements as part of the editorial process. Rather than treating ads as an afterthought, what if we start treating them as a fully integrated component of the content as it’s constructed?

With our preferred CMS – WordPress – heavily investing in a new block-based editor, code-named Gutenberg, our Revenue Strategists and Platform team saw an opportunity to contribute by experimenting with handling ad placement inside of the editor. At the heart of Gutenberg is a block-based method of creating and managing your content, shifting to a unified site-wide “block” concept that further empowers content creators to make their work look just the way they want. We thought: shouldn’t advertisements be one of those blocks?

Read More

Distributor plugin: Share content between your WordPress sites

Meet the newest addition to 10up’s suite of powerful, open source tools for content creators and managers: Distributor.

Distributor is a WordPress plugin that empowers content managers to safely reuse and syndicate content across their websites, supporting sites within a WordPress multisite network and across the web using the REST API. Designed with an intuitive user experience at the forefront, Distributor integrates “push” and “pull” use cases.

The sharing interface is accessible from the admin bar when viewing a single piece of content in the editor or on the front end. Without leaving the content – and with just a couple of clicks – content managers can “push” the content to any other sites where he or she has permission to publish. Think of it as a “retweet” feature for your WordPress sites.

Shares posts across a network

Read More

Estimates and estimation

“In preparing for battle I have always found that plans are useless, but planning is indispensable.”
Dwight D. Eisenhower

Why we estimate

Suppose you’re preparing for a trip and deciding which suitcase to take. You have a small suitcase that you like because it’s easy to carry and will fit into an airplane’s overhead storage bin. You also have a large suitcase, which you don’t like because you’ll have to check it in and then wait for it at baggage claim, lengthening your trip. You lay your clothes beside the small suitcase, and it appears that they will almost fit. What do you do? You might try packing them very carefully, not wasting any space, and hoping they all fit. If that approach doesn’t work, you might try stuffing them into the suitcase with brute force, sitting on the top and trying to squeeze the latches closed. If that still doesn’t work, you’re faced with a choice: leave a few clothes at home or take the larger suitcase. —Steve McConnell, Software Estimation: Demystifying the Black Art

As an engineer, nothing pleases me more than rolling up my sleeves and writing code. But before doing that, a sense of how to approach a task and the required resources (people, time, software licenses, third-party API access) need to be determined. These details support clear project expectations, which are foundational to the great client experiences we strive to create. Estimates, give all project stakeholders—internal and external—a chance to agree on a few key things before work is begun:

  • That we understand what is being asked for;
  • That we have a plan to efficiently deliver quality results;
  • That we’ve asked (and answered) all project team questions;
  • That we’ve considered all the risks, edge cases, and alternatives;
  • That we’ve considered the effects on usability, accessibility, and SEO;
  • That the available budget and desired timeline support the approach.

Read More

Get to know New Relic Reporting for WordPress

New Relic is a SaaS product that offers application performance monitoring (APM), which provides developers with real-time data for use in proactive diagnostics as well as debugging. This data—including basic information about WordPress hooks, plugins, and themes—can be queried and visualized using the New Relic Insights dashboard.

Seeing an opportunity to maximize the utility of APM and Insights, we created New Relic Reporting for WordPress, which supplements out-of-the-box data collection with additional WordPress-specific information.

Read More