WordCamp Atlanta 2018 – I’m Speaking on Processes for Development Teams

I’m happy to be contributing to the WordPress community as a speaker at WordCamp Atlanta 2018.

I submitted a few topics and have been selected to speak about development process for teams. Here’s the short description:

Overview of some processes used at an agency level. Version control, code standards, database migrations, environment aware config files and automated deployments. From local development setup to multiple environments, version control to automated deployments, content migration to modular mentalities. With some how-to talk and some how-not-to talk, we’ll discuss some ways to “soup up” our process to work for us when it comes to web development and WordPress.

Let me know if there are any topics you’d like to hear me cover and I’ll do my best to work it in.

I’ve also been asked to help out during the developer workshop day. Details are still to be ironed out, but it will be an introduction for newer developers and help them get up to speed on development best practices. It will also be a specific look at the development updates on WordPress 5.0, more specifically the Gutenberg editor.

After contributing to the presentations at the Atlanta meetup about Gutenberg I’m excited to again help out in preparing the community for the new editor experience.

Presenting at WordCamp Atlanta is exciting for me because I’m from Atlanta and it is the first WordCamp I attended back in 2012, it was also my first time speaking! Six years have passed- the industry has changed and I have learned a lot in the past 6 years! I have learned so much about working within WordPress and have led multiple teams in different agencies. I’ve invented and iterated on process and workflows for myself as well as the team. I’m excited for the opportunity to take a step back and detail some of these procedures I’ve found most helpful.

 

10up

Turning the page

I’ve joined 10up as a Front End Developer. 10up is a leader in the WordPress industry as an elite WordPress agency (with clients like Microsoft, Time, ESPN, and Adobe). While speaking at WordPress conferences among a few 10uppers, I heard more and more about the distributed agency and I heard they had an opening. Seeing how a 100% remote position would align with my family’s vision of travel & world schooling, I held my breath and applied. I was ecstatic when I eventually received an offer to join the team!

So, after nearly 4 years at Brown Bag Marketing, it’s bittersweet to be moving on. I learned a lot and grew leading the WordPress team. I built and rebuilt processes and iterated, built products and open sourced plugins, internal products. I taught classes and gave presentations. Overall, I made some really good friends, worked hard and together, we built some really fun projects.

Brown Bag Marketing

The next chapter

I’m very enthusiastic about working for such an elite WordPress agency. I’ve always been The resident WordPress evangelist, I’ve converted agencies to WordPress and convinced others that it was more than just a blogging platform. I’ve built many impressive sites on WordPress and used the fruit of those labors as proof that WordPress was a viable tool for an agency. It will be an exciting change to have as coworkers many that I’ve looked up to over the years as the rockstars of the WordPress community. I know I will learn a lot and grow as a developer on the elite team at 10up.

I’m also ecstatic to be back in a remote position. I live in Atlanta which is rightly known for notorious traffic. I’m eager to save 10+ hours a week and to put that time back into my family and pursuing other interests. I understand that a remote workforce has its own challenges and problems, but I also trust that the folks at 10up have solutions to at least some of those issues and will work to ensure that even though i’m not physically with my team, we can be on the same page and do stellar work. I’m feeling the travel bug lately, and even hope to make the most of this remote life to explore the world with the family! Whether that means RV life or some international stints, we are excited for some family adventures.

Speaking at the Inaugural WordCamp Greenville

I was excited to hear about another WordCamp being held close to my home base in Atlanta. Greenville announced their first WordCamp and I was happy to apply as a speaker with a few presentation ideas. I was excited to hear that I was selected as a speaker. Today it dawned on me that as I’m preparing to head to Clemson tomorrow, that I hadn’t even posted that I would be there. So here’s the announcement that I’m speaking at the Inaugural WordCamp Greenville 2018, tomorrow. 🙂

There’s the official announcement from @WordCampGVL.

I’ll be presenting a quick introduction to all things development. While I have presented this topic a couple times now, I still enjoy it. Each time I have a handful of attendees come to thank me and say they had never seen the big picture so simply before. I remember (and still am sometimes) a beginner with certain technologies and getting a quick overview sweep of the whole landscape is helpful and grounding so I can know how it all fits together. I joke when talking about being a web developer/engineer that I started more on the design side. Heck, I even have a BFA, bachelor’s of fine art degree. So, what you might ask am I doing programming sites. I started more on the design side but have since joined the dark side. I have found a more fun and creative outlet writing code than I did actually visually designing things. I still feel that web development is a creative exercise and enjoy the technical side as well as the process and the creativity required. I enjoy helping others grasp this complicated landscape we call web development because I was there and still get lost sometimes myself. So, this talk is called:


Beware the dark side, or an Intro to Development

Crash course introduction to web development for WordPress covering acronyms, buzzwords and concepts that often leave outsiders mystified. Overview of primary development processes and what software and tools are needed to play the game. We’ll cover what you need to go from zero to developer and hopefully how to have fun on the way. WordPress development tools explained for beginners: ftp, git, svn, php, html, css, sass, js, jquery, IDEs, themes, child themes, the Loop, hooks, APIs, CLI, agile, bootstrap, slack, linting, sniffing … etc.


If you’re in the area, sorry for the late notice, because the Conference is sold out, but I’ll update you with slides once they are complete on my WordPress page and the presentation will be up on wordpress.tv eventually.

WordCamp Asheville 2017 Speaker – Intro To Web Development and Modular Web for WordPress

I’m pleased to share that I’ll be speaking at WordCamp Asheville, not once, but twice! I’m presenting an Intro to Web Development for beginners as well as a lightning talk about Modular Web practices for WordPress.

wordcamp asheville 2017

My first talk will be the same as the one I presented at WordCamp Raleigh, but after having presented the content once and taken questions and discussing things with attendees, I hope it will be even better and more helpful. Overall the feedback was very grateful and the audience seemed to have learned a good bit. There were even a few people that came up to me to say it was the best presentation they had seen at the conference. So I am happy to present it again. Here’s the abstracts for each presentation:


So you wanna dev? Join the team!

Takeaways:

  • Learn to speak dev
  • Get familiar with concepts (and acronyms) you’ll need to dev
  • Learn about tools that will help you

Modular Web for WordPress (Lightning)

WordPress the CMS, meets the Modular Web. We need to stop thinking about a website as a collection of pages and templates, but as a set of modules and a system to manage them. Modules, like Legos, are interchangeable and can be combined fairly quickly to create an infinite number of results all while both showing variety and remaining consistent. With this modular paradigm shift, our workflows improve, our websites improve and our very well-being improves. Let’s explore how to use WordPress to manage site content using modules. We’ll see what this does for our development process and programming as well for our content management via the admin. We’ll discuss how to build and maintain a module library, and use it for every site you build. These principles have been immensely helpful in each team or project where I’ve put them into practice, so we’ll even take a look at a few examples and point out where to learn more.

Takeaways:

  • Learn the basics of Modular design for web
  • Understand the advantages to building sites modularly
  • See how to do it with WordPress

The second talk will be one I submitted as a full talk, but was asked to present it as a lightning talk. It will be tricky to squeeze everything into 15 minutes, but I’ll do my best. Developing modularly is something that I am passionate about. I think a lot of sites use WordPress as a CMS, and forget the system part of that. We should use the CMS to help us build flexible systems that are flexible. I’ve been preaching this idea of “Building Systems not Pages” for a long time and hope to inspire others to work smarter. There is a lot to cover, but having only a few minutes to do it in will force me to present the main and most important points only. I’m excited for the challenge!

Tickets are on sale now, so if you’re in the area, I hope to see you at WordCamp Asheville 2017. It will be the best $40 you spend!

WordCamp Raleigh 2017 Speaker – WordPress Devevlopment for Beginners

Although the schedule is not yet out(The schedule is here), I’m happy to announce that this year I’ll be speaking at WordCamp Raleigh 2017 . I’m preparing an intro to Web Development for WordPress users talk. We’ll cover all the crazy acronyms people forget to ask what they mean and help (I hope) attendees at least test the waters in the development pool. There’s a learning curve which some would say is increasing with all the complexities in the Web world these days. This will be my second trip speaking at WC Raleigh, since speaking last year as well as WordCamp Raleigh 2016. I’m excited to see some familiar faces.

So you wanna dev? Join the team!

WP Dev/tools for beginners: ftp, git, svn, php, html, css, sass, js, jquery, IDEs, themes, child themes, the loop, hooks, APIs, CLI, agile, bootstrap, SEO, slack… etc.

We’ll discuss the language of programming and various acronyms and buzzwords used by devs in this crash course introduction to the developer’s world. The session will be an overview of primary development processes and terms as well as what software is needed to play the game. We’ll cover what you need to go from zero to developer and hopefully how to have fun on the way.

 

Why do I want to talk about this?

fortran- the original hanging chadI know what it feels like to be drinking from the firehose. I remember all too well how mystical the development world looked from the outside. I studied Art throughout high school and college. While I have a Fine Art degree from UGA, I was always interested in technology as well, but more along the lines of what I could do with Photoshop. I wasn’t (and still am not) into building computers or fortran coding or spending much time in my terminal. I was studying digital media art and computer animation and ended up taking a web design for artists course – and it changed my life.

I was introduced to HTML& CSS, WordPress blog, and ActionScript in Flash. I enjoyed the flash days and that experimentation really helped spark my interest in programming. I continued to update my WordPress site and learned a lot programming just from wanting to make my own site better. Then eventually, until I was took the plunge into development full-time.

love actionscriptI still remember feeling elated when I loaded up a project in the browser to see it live. Also when I finally understood for loops and the other weird symbols and keywords in programming. It’s great how you can build something and moments later, have it online and accessible to the whole (connected) world. A lot has happened to/in web development and there is a much larger more complex puzzle to sort out when getting started today vs a decade ago. It really is like learning a new language, along with a whole way of thinking. I am hoping to help guide you through it .

Get your ticket

Last year, at WordCamp Raleigh 2016, I presented in the developer track discussing the WP REST API. This year it will be interesting to present to the non-developer attendees and see if I can bring any into the fold. So, go get a ticket for this year! I’ll see you there!

Speaker at WordCamp Birmingham – More WP REST API

I am excited to be a speaker at WordCamp Birmingham 2016. I’ll be speaking on October 29th – just a couple weeks away and now that they have announced the #wcbhm schedule I’m announcing my participation as well. I’ll be opening up the developer track for the day at 10am. I will be presenting more about the WP REST API. A lot will be taken from my WordCamp Raleigh presentation on the same subject, but as usually happens, once you do present, you realize a few holes in your slides and have some additions, suffice it to say, this won’t just be a repeat presentation.

wordcamp-birmingham-badge-speaking

WP API, What is it Good For? Absolutely Everything!

I am very excited about the WP API and am tracking it’s progress closely. There are big discussions as to when it will be rolled into core and all and we’ll discuss these details in the presentation, we’ll also discuss things we can do with the API. It allows us to further separate the data from the code. Because WordPress is a great CMS we can use it to manage our data and then via the API access that data to power whatever we like. We’ll touch a handful of examples and explore an iOS app pulling all it’s data and assets from a WordPress site via this API. We’ll discuss authentication and terms to bring API beginners up to speed on what it’s all about!

So if you’re anywhere close, I encourage you to go get yourself a ticket (just $20) to WordCamp Birmingham and check it out. There will be many other presentations worth checking out as well. I hope to see some familiar faces in Birmingham!

Speaking at WPCampus

I’m pleased to announce that I’ll be speaking at WPCampus! It’s the conference “Where WordPress Meets Higher Education”. My presentation is titled ‘The Modular Web For WordPress’.

WPCampus 2016 is the inaugural conference for the WPCampus community, a gathering of web professionals, educators and people dedicated to the confluence of WordPress in higher education. The concept for WPCampus is an education focused, non-profit event which will allow people to share and learn about WordPress in the world of higher education. So if you’re into WordPress and/or higher education and/or the web in general, it’s the place for you come July. Get a ticket to a wealth of knowledge and ideas.

wpcampus-speaker-confirmation

I will be presenting on a topic that I’ve thought a lot about and have become pretty passionate about. I’ll discuss Modular Web Development and specifically how to integrate a modular development mindset into a WordPress development workflow.

Here is the official session description:

WordPress the CMS, meets the Modular Web. We need to stop thinking about a website as a collection of pages and templates, but as a set of modules and a system to manage them. Modules, like Legos, are interchangeable and can be combined fairly quickly to create an infinite number of results all while both showing variety and remaining consistent. With this modular paradigm shift, our workflows improve, our websites improve and our very well-being improves. Let’s explore how to use WordPress to manage site content using modules. We’ll see what this does for our development process and programming as well for our content management via the admin. We’ll discuss how to build and maintain a module library, and use it for every site you build. These principles have been immensely helpful in each team or project where I’ve put them into practice, so we’ll even take a look at a few examples and point out where to learn more.

legos

While this may not be a topic specific to higher education, I think it very relevant in that having a smart process helps projects be more flexible, more on time and more on budget. I’m happy to be able to contribute to WordPress in education as well as WordPress ideas in general. I will be speaking on Friday, July 15th (I’ll try to update this with a time once it’s decided and announced). As I said, tickets (early bird even) are available now so go get yours. And if you’re interested check out my other presentations.

Recapping WordCamp Atlanta 2016 – Day 0 – The Dev Workshop

Just off a busy but enjoyable weekend of WordCamp Atlanta @wordcampatl. I was able to attend the friday developer workshop and the Saturday sessions of the conference. Though I was a speaker at WordCamp Atlanta in 2012 (From Photoshop PSD to WordPress Theme), 2013 (Your firstborn child theme. Child themes 101+2), and 2014 (Custom Post Types or Choose Your Own Adventure), I couldn’t make it in 2015, I wasn’t selected this year as a speaker. However, I was also able to volunteer to help out and to take some photos and staff the Happiness Room. I also volunteered a couple weeks ago to speak at a WordPress meetup group (Modifying Your Theme’s Design – Learning CSS), so I feel like I was able to still give back.

2016-03-18 12.46.19

Overall

TLDR; It was a great conference and like always, talking to people was the best part, though there were some great informative and even entertaining sessions I attended.

Beginner WordPress Development – Workshop

Micah Wood Aaron Reimann

2016-03-18 09.16.25

The workshop was a great way for many to get started with WordPress development. Micah and Aaron went over from the basics of development through child-theming. I stepped up to help others get started, since we were all installing mamp to get a local wordpress install setup. Even with the famous 5 minute install it was taking most people a long time to get setup, though we can blame the wifi for most of the issues I believe. We then cloned Micah’s child theme demo from github into our theme dir and he get started through the demo. Follow along by reading his blog post length commit messages. It was great to help out! I even learned a few tricks about some WordPress hooks, the loop and template hierarchy.

I’ll share one tip many might not have realized when dealing with child themes. The difference between get_template_directory_uri and get_stylesheet_directory_uri.

I’ll post an update on Day 2 when I’ve had time to digest some more of the great presentations.

 

Modifying Your Theme’s Design – Learning CSS: Atlanta WordPress Users Group Presentation

Here’s my presentation for the Atlanta WordPress Users Group to continuing their discussion on theming. The meetup gives you a first hand look at modifying your Theme’s look and feel. We’ll be showing you how to make typical changes to existing themes. We will not be showing you how to create your own theme from scratch, though we will have a meetup later in the year to do that.

During this meetup we discussed:

• What is CSS and why do we use it?

• What are ‘typical’ modifications to themes and how to make them

• Using ‘inspect element’ and/or ‘firebug’ to find and test

• Correct way to change Fonts

• Simple color theory and design

Here’s the slide deck for the presentation

The presentation overviews the internet, teaches us how to spell HTML and other web programming “languages” that come together to form a WordPress website, like HTML, CSS & PHP. We even discussed web development tools like FTP clients and which text editors to use. We went over what makes up a wordpress theme and then the concept of child themes. Discussed the process of creating your own child theme with just a couple files and that you can create a child theme for any theme out there. We demoed how to view source and dissect any website, but more importantly, how to inspect elements on your site and live-edit the css for any element. Then to write these CSS rules to our theme to lock in the edits in your child theme.

If you have any further questions that you would specifically like reviewed, leave them in the comments below and I’ll respond.

We created a child theme for twentysixteen

We created our own child theme and discussed the benefit to creating a child theme over other ways to modify a WP theme. Our twentysixteen child theme did wonders for the look:

Screenshot 2016-03-10 08.32.56

We explored the code to create our own WordPress child theme

Here are the code snippets for review


<?php
function theme_enqueue_styles() {
$parent_style = 'parent-style';
wp_enqueue_style( $parent_style, get_template_directory_uri() . '/style.css' );
wp_enqueue_style( 'child-style', get_stylesheet_directory_uri() . '/style.css', array( $parent_style ) );
}
add_action( 'wp_enqueue_scripts', 'theme_enqueue_styles' );
?>

view raw

functions.php

hosted with ❤ by GitHub


<?php
/**
* The template for displaying the header
*
* Displays all of the head element and everything up until the "site-content" div.
*
* @package WordPress
* @subpackage Twenty_Sixteen
* @since Twenty Sixteen 1.0
*/
?><!DOCTYPE html>
<html <?php language_attributes(); ?> class="no-js">
<head>
<meta charset="<?php bloginfo( 'charset' ); ?>">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="who" content="is your daddy">
<link rel="profile" href="http://gmpg.org/xfn/11">
<?php if ( is_singular() && pings_open( get_queried_object() ) ) : ?>
<link rel="pingback" href="<?php bloginfo( 'pingback_url' ); ?>">
<?php endif; ?>
<?php wp_head(); ?>
</head>
<body <?php body_class(); ?>>
<div id="page" class="site">
<div class="site-inner">
<a class="skip-link screen-reader-text" href="#content"><?php _e( 'Skip to content', 'twentysixteen' ); ?></a>
<header id="masthead" class="site-header" role="banner">
<div class="site-header-main">
<div class="site-branding">
<?php
$description = get_bloginfo( 'description', 'display' );
if ( $description || is_customize_preview() ) : ?>
<p class="site-description"><?php echo $description; ?></p>
<?php endif; ?>
<?php if ( is_front_page() && is_home() ) : ?>
<h1 class="site-title"><a href="<?php echo esc_url( home_url( '/' ) ); ?>" rel="home"><?php bloginfo( 'name' ); ?></a></h1>
<?php else : ?>
<p class="site-title"><a href="<?php echo esc_url( home_url( '/' ) ); ?>" rel="home"><?php bloginfo( 'name' ); ?></a></p>
<?php endif; ?>
</div><!– .site-branding –>
<?php if ( has_nav_menu( 'primary' ) || has_nav_menu( 'social' ) ) : ?>
<button id="menu-toggle" class="menu-toggle"><?php _e( 'Menu', 'twentysixteen' ); ?></button>
<div id="site-header-menu" class="site-header-menu">
<?php if ( has_nav_menu( 'primary' ) ) : ?>
<nav id="site-navigation" class="main-navigation" role="navigation" aria-label="<?php esc_attr_e( 'Primary Menu', 'twentysixteen' ); ?>">
<?php
wp_nav_menu( array(
'theme_location' => 'primary',
'menu_class' => 'primary-menu',
) );
?>
</nav><!– .main-navigation –>
<?php endif; ?>
<?php if ( has_nav_menu( 'social' ) ) : ?>
<nav id="social-navigation" class="social-navigation" role="navigation" aria-label="<?php esc_attr_e( 'Social Links Menu', 'twentysixteen' ); ?>">
<?php
wp_nav_menu( array(
'theme_location' => 'social',
'menu_class' => 'social-links-menu',
'depth' => 1,
'link_before' => '<span class="screen-reader-text">',
'link_after' => '</span>',
) );
?>
</nav><!– .social-navigation –>
<?php endif; ?>
</div><!– .site-header-menu –>
<?php endif; ?>
</div><!– .site-header-main –>
<?php if ( get_header_image() ) : ?>
<?php
/**
* Filter the default twentysixteen custom header sizes attribute.
*
* @since Twenty Sixteen 1.0
*
* @param string $custom_header_sizes sizes attribute
* for Custom Header. Default '(max-width: 709px) 85vw,
* (max-width: 909px) 81vw, (max-width: 1362px) 88vw, 1200px'.
*/
$custom_header_sizes = apply_filters( 'twentysixteen_custom_header_sizes', '(max-width: 709px) 85vw, (max-width: 909px) 81vw, (max-width: 1362px) 88vw, 1200px' );
?>
<div class="header-image">
<a href="<?php echo esc_url( home_url( '/' ) ); ?>" rel="home">
<img src="<?php header_image(); ?>" srcset="<?php echo esc_attr( wp_get_attachment_image_srcset( get_custom_header()->attachment_id ) ); ?>" sizes="<?php echo esc_attr( $custom_header_sizes ); ?>" width="<?php echo esc_attr( get_custom_header()->width ); ?>" height="<?php echo esc_attr( get_custom_header()->height ); ?>" alt="<?php echo esc_attr( get_bloginfo( 'name', 'display' ) ); ?>">
</a>
</div><!– .header-image –>
<?php endif; // End header image check. ?>
</header><!– .site-header –>
<div id="content" class="site-content">

view raw

header.php

hosted with ❤ by GitHub


/*
Theme Name: Child of 2016
Theme URI: http://example.com/twenty-fifteen-child/
Description: Twenty Sixteen Child Theme
Author: Evan Mullins
Author URI: https://circlecube.com
Template: twentysixteen
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: twenty-sixteen-child
*/
.site-branding .site-title a {
color: cyan;
font-size: 4rem;
// border: 1px solid red;
margin: 50px;
padding: 50px;
}
.site-description {
text-indent: -999rem;
background: url(img/logo.png) center center no-repeat transparent;
background-image: url(img/logo.png);
display: block;
width: 500px;
height: 500px;
background-size: contain;
padding:0;
}
.entry-date {
font-size: 10px;
}
.entry-footer,
.entry-footer a {
color: pink;
}
.entry-footer a {
color: pink;
}
a {
color: tomato;
}
a:hover {
color: rgba(130,203,45, .8);
}
a:visited {
color: #00cc33;
}
.widget_meta {
display:none;
}
.widget_recent_comments {
padding: 1rem;
margin: 1rem 0 4rem;
}
.widget_recent_comments .widget-title {
background: black;
color: pink;
padding: 1rem;
}
.site-info .site-title {
font-size: 3rem;
}

view raw

style.css

hosted with ❤ by GitHub

How to Add a class to the WordPress comments submit button

This WordPress feature slipped by me, but since the release of WP 4.1 there is a great and simple new filter that I’ve been watching for a number of years here. Interestingly this ticket was opened 5 years ago today, so some have literally been waiting years! The commentform.php file now has a couple more options available as explained in this changeset.

add_filter( 'comment_form_defaults', 'circlecube_comment_form' );I have been using foundation and bootstrap on sites and have struggled with the best way to add a button class to this button since I wanted it to inherit the frameworks styles for a button. I’ve seen a few ways to go about doing this, like using javascript (ug), or adding an extra button and hiding the original button with css (meh). But now it’s a simple little filter to add to comment_form_defaults.  Just add your desired class value to ‘class_submit’ in the args. I’ve put it into a simple little gist to add a ‘button’ class to my input type equals submit:


function circlecube_comment_form( $args ) {
$args['class_submit'] = 'button'; // since WP 4.1
return $args;
}
add_filter( 'comment_form_defaults', 'circlecube_comment_form' );

view raw

functions.php

hosted with ❤ by GitHub