Categories
WordPress

Are Millennials Killing WordPress?

No. And stop clicking on such ridiculous click-bait titles. Here is an advertisement as punishment.



Categories
WordPress

A Few Use Cases I Would Like To See Solved In Gutenberg

While I've used WordPress in many ways over the last nearly ten years, I primarily spend my time working on two publications: Scary Mommy and Cafe. "Big Media" publications have challenges and use cases that are different than standard WordPress sites. As Gutenberg continues to evolve, there are a number of use cases that I see as needing to be accommodated. Most of these are things that don't need to be solved "out of the box", but that the extensibility of Gutenberg should accommodate.

It's possible that some of these use cases are already accounted for, but that that the documentation on them is lacking. 

Publication Requirements

Before "Publish" can be pressed, a number of steps need to happen. This could be selecting a featured image, making sure some taxonomies are properly filled out, or that there is 2nd sign off. This takes the form from the super basic such as what make.wordpress.org sites use ( an "Are You Sure" checkbox that must be checked before the publish button is enabled) to the complex custom plugins that are prevalent.

The important part is that there needs to be a documented and extensible way of only allowing posts to be published when other criteria have been met. 

Block Removal

Out of the box, Gutenberg has alot of blocks.  Not every site needs a "Verse" block, and there needs to be a way to remove it. As the classic saying goes, "Design is done not when there is nothing left to add, but instead when there is nothing left to take away".  The ability to remove blocks is necessary for the success of Gutenberg.

Block Modification

Currently, the headings block in Gutenberg allows for selecting H2, H3, and H4. What about sites that also support H5? What about sites that only use H2?  There is a need to make minor modifications to many of the default blocks. While some sites and some users benefit from allowing the content producer to select the alignment of blocks, other sites have strict rules and want to lock it down.

Block Rules

There is a need for blocks such as subheads that only exist after the title. Similarly, there may be editorial rules such as never using more than 3 twitter embeds, or always having at least two paragraphs between headings. These should be a way to enforce these rules.

As Gutenberg continues to evolve, more modification requirements are sure to come up. It's going to take years before all sites can use Gutenberg due to the millions of dollars invested in custom editorial processes, but these are my initial modification use cases.  What are yours?

Categories
WordPress

BRAD: Better Responsibility Around Discoverability

Last week, I saw a tweet that identified a challenge for the WordPress UI:
https://twitter.com/williamsba/status/885520668154089472
I wasn’t alone in seeing this as an issue that was worth solving:
https://twitter.com/norcross/status/885582016456130560
Knowing that plugins are best when they are built and supported by teams rather than individuals, Norcross and I started collaborating (though in the end, the majority of the code was written by him). What we came up with a plugin to improve the experience for site creators. As the responses to Mr. Williams tweet shows, It’s very common to mark a site as inaccessible to search engines and then forget to uncheck that setting when it comes time to launch. BRAD aims to solve this by moving the notice about search engine discouragement to the top of the dashboard.  It also becomes a recurring dismissable notification.
  • Every week, there is a check to see if the site is still hidden from search engines, and if it is the notice comes back
  • If you change the siteurl or home options, then the notice comes back (note, you need to change these via the UI or via wp-cli, directly changing the DB)
[the_ad id=”562793″]

BRAD is already loved by many

I was lost before BRAD Before this plugin, I never knew if my site was excluded from search engines or not. And if it was, where the heck did they move the “Discourage search engines from indexing this site” checkbox to? Thank you, BRAD
Heavy praise from the leader of a great WordPress Agency!
Life changer! BRAD literally changed my life – now BRAD tells me where to go every day!
It feels amazing to help change the life of someone who wrote the book on WordPress (over and over again) If you would like to contribute to BRAD, join us on Github. If you are building sites, add BRAD to your WordPress site today!
Categories
WordPress

Birth of a Community

Seven years ago today, the First WordPress D.C. Meetup that was focused on a continuity of community took place. Tomorrow the first WordCampDC kicks off. It's been a heck of a journey. 

I've been gone from the community for a few years.  I know the community has continued to evolve and grow, but for the first 3 years of its existence, I was honored to serve it as one of the organizers. Looking back, there are a number of things that stand out to me about those early days of WordPress DC. 

The DC community has helped many people grow. Many people took on larger roles in the WordPress community in part due to the involvement in the meetup. Committers, Lead Developers, Training Team Leads, Speakers, Meetup Organizers, Meetup Organizer Organizers, Code Contributors, Testers, Theme Reviewers, Accessibility Team Leads and Support team members. You would be hard pressed to find a community that has done more for WordPress.

I know of countless people who got jobs because they started networking at the WordPress DC meetup. Early on, we stole from the PHP meetup the idea of asking "Who's hiring, Who's looking" at the end of the meetup and giving people a moment to introduce themselves.

Early on, the decision was made to focus the main monthly meetup on users of WordPress, with the idea that designers and developers can always learn more about users and for many of them, networking after the meetup could be even more valuable than hearing yet another talk about custom walkers. We did hold a number of special events especially aimed at developers and designers though. We tried "Brown Bag Lunches", Saturday afternoon pre-release testing sessions, Friday Night's with (sadly, only one since he was only in town one night), and "Happiness Socials" focused on helping each other with issues. 

The collaboration the meetup had with the broader DC community helped WordPressDC standout.  The Open Source BBQ become the summer event that everyone looked forward to.

This isn't to say the meetup group was perfect.  It took us a too long to realize that our speaker roster was heavily male, and leaned young.  Thankfully, we realized it before it poisoned the community.  In many ways, it reminds me of one of my favorite tweets. We fucked up, but then we tried not to make the same mistake again. 

Finally, the friendships that grew and developed can't be understated. For many of us, The second Tuesday of the month became a highlight that we didn't want to miss. Many people I met or got to know better through the WordPressDC community are people I still consider friends today.

Happy Birthday WordPressDC.  Tomorrow, we celebrate with the first WordCamp DC!

Categories
WordPress

WordPress Serves Many Masters

I have used WordPress in a number of different ways over the last (just shy of )10 years.  I got my start building a blog that my friends I and I wrote on. We got a bit of a following (I remember the first time we hit 1000 views in a day on one article, it was exciting). I then moved on to building a site for a movie my friends and I wanted to make, before starting freelancing and being exposed to many sites.

Freelancing Days

Over the course of about two and a half years of freelancing, I worked with dozens of clients. They most commonly were:

  • Comedians
  • Small non-profits.
  • Small Businesses and Restaurants
  • An SEO consultant on products that he offered (my first foray into product development rather than developing primarily for marketing) 

A site I worked onwhile freelancing

The first three groups of sites make up a large percentage of WordPress sites. There are freelancers and agencies in just about every town/city in the world helping Individuals, smaller non-profits, small businesses, and restaurants get online every day. In general, the organization has little knowledge about what tools they should use, and doesn't care what WordPress is. These are the passive users of WordPress.

The Enterprise

I then moved to a couple of large organizations( ranging from 50 to 500,000 employees). Here, WordPress was chosen by the organization, but it was never the main technology of the site.  It was a supplement

WordPress supplemented the technology, rather than being its base.

Each of these organizations had at least 5 engineers, but it was rarely more than one or two people who worked on WordPress, and outside of security updates, months would go by without any work being done to WordPress from a coding standpoint.  At one organization during a major redesign, the only reason WordPress was updated to match the site design was due to other tasks taking less time than anticipated.  

Big Media

Some of the biggest WordPress sites (at the time) were at Condé Nast. The New Yorker switching to WordPress received praise from Matt Mullenweg (twice!), while WIRED, Vogue, Bon Appetit, and others were receiving large amounts of page views and allowing editorial teams to seamlessly publish a lot of content. Working with the teams on each of these sites showed me that when you have multiple people all working on WordPress at once, you can make it do whatever you need it to.

Let's Try Something Different

The next step was a short stop building an analytics product with WordPress as the main piece of the backend technology. Essentially, it was using WordPress as a framework. WordPress provided much of what we needed, but we could have just as easily used something that advertises itself as a framework. WordPress gave us a lot of things out of the box though. We didn't need to build a user system, we could use WordPress. We didn't need to build a command line interface, we could use WP-CLI. By using WordPress, we got a lot out of the box for free.

Where I am now

I primarily work on five sites now: two personal, one volunteer non-profit, two for work. My personal sites are "boring" sites. The non-profit site is rather complicated, in that it is a marketing site, a conference registration system, a blog, and an intranet all in one. But it's also not 100% WordPress. Many pieces have been carried forward

And my two work sites? Those are content-heavy media sites. They feature a lot of videos and regularly go viral. 

What WordPress Excels At

The problem for WordPress is that for all of these sites, it works pretty well.  It's far from perfect, but it works. One of the biggest challenges for WordPress, especially when it comes to core features that are used on almost all sites, is that it needs to work for many many use cases. Working on sites of all shapes and sizes has taught me there is rarely one solution that solves every site's problems. 

Serving many masters means people look at WordPress and think "It's just a blog", and it is, it powers this blog.  They look at it and think "It's for small business brochure sites" and it is, it powers many of them.  They look at it and think "It's for big media sites with large staff" and it is, it powers ScaryMommy.

Scale is often thought of as the ability to receive a lot of traffic or handle a lot of users, but scale also means working for many use cases.  This is the type of scale that is the biggest challenge for WordPress. It doesn't have a narrow focus of serving one use case, it has a broad focus of serving all users use cases. Scaling WordPress from a core perspective means providing features that first, work for all, and second can be modified to be better for them as well.  Out of the box, WordPress is never going to solve every use case, but when features make it harder for a use case, we really need to ask ourselves if they should go into core.

Categories
WordPress

Random Thoughts on Gutenberg

Gutenberg is being developed as the next generation WordPress editor. I made my first contribution earlier today. Nothing big, but something that will hopefully help people test it.  The contribution process was , but for end users, that’s not the important thing. What is important is the actual editor. I’ve seen talk that Gutenberg is in “Open Beta” now, but I think calling this beta software is still premature. I think there is plenty that will change between now and any possible inclusion in WordPress core for Gutenberg. Here are my random thoughts and my first reactions to using Gutenberg.
  • It’s pretty.  And Fast. I never thought of the post editor as being slow, but there is something about Gutenberg that makes it feel fast.
  • There are a lot of rough edges. It’s hard to know what is a bug, what is intentional,  what just hasn’t been done yet, and what hasn’t been thought of.
  • There is an option for “Drop Cap” that doesn’t seem to do anything on the front end yet.
  • I’ve also never intentionally been able to highlight multiple blocks at once, but I’ve sure done it on accident a lot.
  • I can’t seem to delete some blocks without going into the text format.
  • I really like how the plugin is implemented. Being able to test Gutenberg without completely giving up the current editor is awesome and will hopefully help encourage people to test it out.
  • The tab key doesn’t let me actually add a tab, even inside a code block.
  • Existing content can’t really be imported. I hope this is something that is on the roadmap since it sure would be odd to Gutenberg sometimes not work like Gutenberg.
  • I miss a lot of the meta boxes I’m used to seeing on the screen.  Things like Yoast SEO (on some sites) and custom taxonomies are just not shown. If every metabox ever made for WordPress needs to be remade, it sure is going to make developers lives a living hell.
  • Adding images and the image block in general are confusing. For example, despite having “All da” ( which I think is “All Dates” but is cut off) selected, only my 10 most recent images are shown initially.  There are no names/text associated with the
  • I can’t figure out how to add an image to this list.
  • Autoembeds seem to work, but don’t display anything in the UI.
  • The Embed URL block tells me that I can’t embed that content, but the front end of my site tells me differently.
  • The sidebar being empty 3/4 of the time feels really odd.
  • The default state is likely my favorite “Distraction Free Writing” implementation in WordPress yet.  I’m simultaneously able to focus on my content, and yet I have all the tools I need for writing. I don’t have all the tools I need for content creation.
  • I need to take my hands off my keyboard more than usual. Adding a paragraph after a list isn’t easy to do with just a keyboard.
Lots of things are constantly changing with Gutenberg ( my small change was merged within hours of proposing it). I’m going to keep my eye on it. The content for this post was drafted in Gutenberg and I’m going to try to continue to do that going forward.  Go install Gutenberg, so you can generate your own opinons on it.
Categories
WordPress

A WordPress without Woman.

If WordPress had no Woman contributors, 4.7 wouldn’t have had a release lead.
If WordPress had no Woman contributors, The queue for plugin reviews would rarely be empty.
If WordPress had no Woman contributors, many WordCamps would lack lead organizers, speaker wranglers and sponsor wranglers.
If WordPress had no Woman contributors, most WordCamps never would have been approved to be organized.
If WordPress had no Woman contributors, The REST-API never would have made it into core.
If WordPress had no Woman contributors, WordPress for Dummies never would have been written.
If WordPress had no Woman contributors, many support questions would go unanswered.
If WordPress had no Woman contributors, the training team wouldn’t have created lesson plans to help anyone teach WordPress.
If WordPress had no Woman contributors, most waapuu would never have been designed.
If WordPress had no Woman contributors, WordPress would be inaccessible to many people using assistive technology.
If WordPress had no Woman contributors, WordPress wouldn’t be fully translated in over 60 languages.

There is no area of WordPress that is untouched by the contributions of Woman. In honor of International Woman’s Day tomorrow, my friend Mika is participating in “A Day Without Women”. I support her and every other Woman of WordPress that chooses to do the same.

The theme for 2017’s International Woman’s Day is “Women in the Changing World of Work: Planet 50-50 by 2030”. While Planet 50-50 ignores the gender non-binary members of the world, it’s a phrase that aims to seek equal representation, recognition, and opportunity.

For my fellow men of the WordPress community, I encourage you to make sure a woman who’s work you appreciate is known tomorrow. Without the contributions of woman, WordPress would be worse off.

Categories
WordPress

WordPress JSHint Adventure

NOTE: I found this draft originally written on December 19, 2013.  Not sure why I decided it should remain unpublished, but I did and then like many drafts, I forgot about it.  So here it is.


One of the features of WordPress 3.8 is something that users will never notice. In fact, it’s something that most developers will never notice as well. It was establishing greater standards with the core JavaScript and adding JSHint.

JSHint is a tool that detects errors and potential problems with JavaScript code. They range from the annoying ( trailing whitespace ), to the potential bug inducing ( code in a function after a return ), to the likely to break a browser we still support ( a trailing comma in an object ). Adding JSHint was initially discussed around the same time as the creation of http://develop.svn.wordpress.org, but it wasn’t until the start of the WordPress 3.8 that much progress was made. K. Adam White led the effort to create the initial .jshintrc (which is the configuration JSHint uses) along with the grunt configuration to make running JSHint easy.

Once the configuration was decided upon, the process of fixing up the files was relatively quick and straightforward. A list was built and maintained of all files, and then edited to note the person who signed up to fix it and the ticket number.  Overall, from publishing the post until the last file was cleaned up it took 7 days.

By going file by file, we minimized the churn and made it simple for committers to review. It also made it easy to find bitesize chunks. Overall, 13 individuals wrote patches in addition to the committers who assisted.

Categories
WordPress

Emoji to show you are here

I don’t know how it started, but sometime after WordPress switched to Slack in 2014 the norms for checking in to a dev chat switched to emoji.  Many people , some use slack specific emoji like the bowtie, and others change it up on a regular basis.

Like many traditions, this started completely organically and at this point it’s so normal, no one bats an .

I feel like It’s important to have traditions in open source software, but it’s also important to make them easy to pick up.  It helps new contributors feel a part of the process.  If the traditions are too hard to pick up on, then you risk creating an us vs. them problem. Thankfully, emoji’s to show you are present is one that people can pick up on right away and immediately feel a part of the WordPress team.

Categories
WordPress

User Trust Matters now available in Japanese

ユーザーとの信頼関係の重要性 – WordPress コミュニティにおける後方互換性という哲学

When I was summarizing my last month of daily posting, I mentioned a few ways I felt like my writing was having impact. I didn’t even consider that my work would inspire someone to translate what I wrote my writing into another language.  However, I was incredibly honored when Takayuki Miyauchi asked to translate my post about user trust. I’m going to add having an article translated to my list. If you would prefer to read in Japanese, the link to the post is above.