WordCamp RI 2017

Today, I will be giving a talk at WordCamp Rhode Island. Even though I am an organizer for WordCamp Boston and the WordPress Boston meetups, I have always considered WordCamp Rhode Island as my home WordCamp. I have spoken every year since its inception (previously WordCamp Providence).

This year, my talk is titled “Coding Standards: What They Are and Why You Should Follow Them”.

Slides

You can follow along during my talk with my slide deck if you would like.

Slide Deck

Below, is a list of links to things mentioned in my talk.

WordPress Coding Standards
WordPress Core Trac Tickets
Code Linting Resources
Services

vvv-custom.yml Files – Show Me Your’s, I’ll Show You Mine

With version 2.0 released of the Varying Vagrant Vagrants project, it is now much easier to configure your local VVV environment to your liking. Adding additional sites that are created and configured with a single command is easy breezy.

Tom Nowell wrote a great breakdown of what is new in version 2.0, and the documentation on the VVV website goes into great detail on the different configuration options available to you. I also recommend reading through the README file for the Custom Site Template repository (which your custom site definitions will most likely use for provisioning instructions). I am not going to cover the changes or the different options or settings in this post, so feel free to read through these links to get up to speed.

My vvv-custom.yml File

Recently, during the 4.7.4 release process, I was helping to test the built package files generated for the maintenance release. In addition to the 4.7.x version being updated, some changes were backported all the way back to the 3.7 branch (currently, the oldest maintained version of WordPress).

I realized that I did not have anything set up for testing older versions of WordPress when I started testing the builds. So, I spent a few minutes expanding my vvv-custom.yml file to accommodate this need.

Here is my current vvv-custom.yml file with some of my personal and work sites removed. In addition to the two default sites (wordpress-default and wordpress-develop), I include a multisite environment, and each WordPress version back to 3.7.

Share Yours

What does your vvv-custom.yml file look like? Do you have any cool tricks worked into yours? Share them below!

Update: Added entry for 4.7.

Why I WordCamp: A Reflection

I had an experience at a WordCamp in 2016 that I wanted to take a moment to share. It was unexpected and made me reflect on my involvement in the WordPress community and why participating is so important to me.

Let’s travel back to 2014. I was teaching a workshop called Plugin Development from Scratch at WordCamp Providence (now WordCamp Rhode Island). This would be my third year in a row speaking at this WordCamp, but it was my first time running a workshop. Participants would learn how to build a plugin using basic WordPress action and filter hooks, APIs and best practices.

As I was going around the room to answer the questions people had, there was one person that had many more questions than the others. I spent as much time with her as I could while continuing to run the workshop. I could tell something was not quite making sense to her yet and did my best to explain things to her.

The workshop went on and eventually came to an end. The participants slowly filed out of the room until there were only two people left: the person with all the questions, and myself. She had a few more to finish off the day, so I spent some more time with her to ensure she had the pieces she needed to continue on her own.

WordCamp ended, and I went on with my daily life. When the next WordPress meetup came around, the person from my workshop showed up. She had more questions related to the material in the workshop and told me that she was determined to get her example plugin to work.

This went on nearly every month for a year. She continued to show up with questions ready to learn. WordCamp RI 2015 & 2016 came around and she volunteered, helping to organize both years.

At the speaker’s dinner for WordCamp RI 2016 I had a chance to catch up with her. It had been several months since our paths had crossed at a meetup, and she, of course, had a handful of questions for me. This time was different, though. Her questions were far more advanced than the last time we had talked.

“I am really impressed, Karen. You’ve come a long way!” I told her.

“It’s all because of you. Your workshop changed how I saw everything. Because of the way you explain things, something clicked. And all of a sudden, everything made sense.”

When I was driving home I reflected on what she said to me. It caught me off guard. I always contribute to WordPress and speak at WordCamps because I enjoy it. But I had never thought about what impact the things I said would have on the people who attended my talks.

Because I took the time to teach a workshop (that I was afraid no one would receive any benefit from) and answer some questions, someone received a level of clarity that helped them understand WordPress better. And this improved their ability to make a living on WordPress.

I started to think back. I was once that person. We all were. Even though we may not be able to trace our own eureka moment back to an individual person’s instruction at a workshop, the collective pointers that we receive from the people we interact with in the community play just as much a part of our skill sets as the long hours spent at the keyboard combing through the files in WordPress Core.

No matter what level your skills are at, there is always someone who can learn from you. Don’t be afraid to offer help. Open source a project you have been working on. Answer questions in the support forums. Attend local meetups. Speak at WordCamps. Translate plugins & themes. There is a way to contribute to the community for every person.

This is why I love the WordPress community. The number of people willing to take the time to teach, mentor, give guidance. Everyone belongs, everyone has a right to be there. WordCamps pull all of these people from all walks of life together to collaborate, to help, and to learn about WordPress.

This is why I WordCamp.

Empty Stable Column on translate.wordpress.org

I was recently making some changes to my Toggle wpautop plugin in the wordpress.org plugin repository when I encountered a strange issue related to translate.wordpress.org that I wanted to share.

First, in case you are not familiar, here is a little bit of background on how translations work for WordPress.

Way back in 2013, WordPress 3.7 added support for something called language packs. When combined with Glotpress and a few automated processes behind the scenes, anyone who is multilingual with a WordPress.org account can translate plugins, themes, and even WordPress core through a simple front end interface.

This interface exists at translate.wordpress.org. As an example, here is what the translation page looks like for Akismet.

Akismet’s WordPress.org Translation page

Once a specific locale reaches the 95% translation mark, a language pack will be generated and automatically made available to anyone using the plugin on their WordPress site with that language locale selected.

Anytime you push an update to your plugin’s SVN repository, identical strings from past versions are automatically synced to the most recent versions. You can even watch this happen in the #meta-language-packs channel of the Making WordPress Slack.

Now, on to the issue that I experienced. When I pushed my updates to the plugin’s SVN repository, I noticed that the “Stable” column was empty. This was weird because “Development” and “Stable” were the same code.

Empty “Stable” column for Toggle wpautop translations.

I posted my question in related channels within the Make WordPress Slack, and Sergey Biryukov was able to give me an answer.

I had committed my new code and changed the plugin’s stable version in the plugin file’s header in the same commit. Because of this, the automated processes that generate the translations behind the scenes could not generate a list for “Stable”.

To fix this, just make a commit to the plugin’s repository. I did this by increasing the version number while leaving the stable version alone. I watched the #meta-language-packs channel for my plugin to be regenerated after doing this, and all was well.

Do you speak another language? Hop over to the Toggle wpautop translation page and spend a few minutes translating my plugin. All contributions are appreciated.

For more background info on how translations work on wordpress.org, check out these Make WordPress blog posts.

If you are a plugin or theme developer and want to learn more about using language packs in your code, read through the core handbook for Internationalizing Your Plugins, and Internationalizing Your Themes.

I hope that someone finds this helpful!

WordCamp Rhode Island 2016 Slides

At WordCamp Rhode Island 2016, I ran the Contributor Day workshop. Before we got to work contributing to core, I gave a short presentation about how the WordPress development process works, and introduced them to the tools they would need to be familiar with.

Download my slides here.

I followed the Trac tickets that the participants became involved in. By my count, 5 first time contributors were credited in WordPress 4.7.

Congrats to all of the first-time contributors from WordCamp Rhode Island!

Boston WordPress Meetup Talk

This past Monday, I had the opportunity to speak at the monthly WordPress Boston meetup. If you are not familiar, WordPress meetups happen regularly all across the globe. There are several in the New England area alone.

My talk was titled Coding Standards & Best Practices !important;. I talked about what coding standards are, where you can learn more about them, and why everyone should be using them.