Category Archives: Meetup Slides

June 2016: Git Version Control for the Complete N00b

Adam LaBarge from Hyperarts introduced us to Git and GitHub: installing Git on Windows and Mac, cross-platform GUI clients for Git, repositories like GitHub, GitLab, and BitBucket, deploying from Git to WP Engine, and other useful tools for developers.

Notes from Adam’s Git Presentation

Git was invented by Linus Torvalds.

What’s different about Git? It takes snapshots of your data as your file changes. Git manages the version you see when you open the file.

Everything is local: all the changes and history are on your machine, so you can work without a network connection. If a teammate’s repo is destroyed, you’ll still have everything.

Git is an “add-only” program–it ‘s very hard to get it to delete anything.

WordPress updates are a key reason to use Git. You don’t want to overwrite working code.

You only want working code on stage and master.

Git is amazing for managing your team code efforts…though it IS possible to overwrite your co-workers’ code, so you have to do it right.

You will thank yourself for having a Git workflow and sticking to it.


Git is basically a command-line app. There is a terrible default GUI, and some other GUIs, but some things HAVE to be done on the command line.

There are install packages for Linux, Mac, and Windows. Be aware that you need to specify that you’re using Git for Windows when searching for help for Windows machines.


If you don’t want to use the command line, you can use something like SourceTree or GitHub Desktop.

The GitHub app gives you a good introduction, but it has some drawbacks, especially if you’re dealing with a huge number of files.


Repositories are a place to save your code but they also offer additional services.

You can belong to multiple repositories on GitHub, BitBucket, etc. You can scan your code for PHP errors in the process of pushing it to your repository.

Git by itself is just versioning, not user management. For user management you need a Git server, either one you create yourself or a hosted server like GitHub.



Fetch gets code from a remote repo, but without merging it into your local repo.

Branches: there should be at minimum master (production), stage (for the staging server, to test), and whatever working branches you want. When you’ve finished testing, merge locally, then push to repo.

Git does not have a pre-defined workflow, so you have to create one for yourself and your team. Don’t MAKE changes on the stage or master branch. Make them in a branch and merge.

SourceTree will let you know if someone else has made changes that you need to pull down. (A pull notification means there’s something you need to pull down.) Ideally, you won’t have two people working on the same branch at the same time, but let’s face it, it will happen. If you’re both working on the same branch and you get a pull notification, stop what you’re doing, merge your changes, fork the staging branch, pull down the changes. Merge his changes to your branch, and if they work, back to stage.

“If you’re not sure what’s going on, make a fork of what you’re working on.”

You can force push your changes and re-set the repository.

Whether you create a readme file and a .gitignore file on GitHub depends on whether you’ve already got them on your local.


WP Engine Git Deploy only goes one way, so you really want EVERYTHING in your local Git repo. (Or, well, the repo where you’re keeping stuff, which could be on GitHub or wherever.)

SiteGround’s Git Tutorials

It’s easier to use the HTTPS version than the SSH, because with SSH you have to generate keys. Alas, both WP Engine and SiteGround require SSH keys. There seems to be an assumption you’re going to be working from GitHub so you can generate keys there.

If your code is already on a host, you can push the code from your host to GitHub and then pull it to your local install. (Assuming you have SSH access, of course.)


Don’t be scared to delete Git and start again.

Revert is a pain. Switching branches is easier.

If you don’t commit a change, there won’t be any record of it, so if you want it saved for posterity, commit it!

Before you do anything else, “git status” to find out where you are and what’s pending

The head is the last point of the current branch.

If you find a conflict, humans have to intervene: contact your colleague and decide whose version to use. You have to tell Git you resolved the conflict by re-adding the files.

April 2016 – WordPress and Business Intelligence Presentation

Thanks to everyone who attended this past Sunday in our new meetup location. Here’s my presentation on Business Intelligence and WordPress, which I’ve uploaded to SlideShare.

Sallie’s Notes on Anca’s Business Intelligence Presentation

Definition of Business Intelligence: The tools and techniques to acquire data and transform into meaningful and useful information.

Some questions that business intelligence is designed to answer:

  • Who are my best customers?
  • How much money have I made this year?
  • What will it take to fulfill an order or provide a service? (COGS and overhead)
  • How effective are our marketing campaigns?
  • How well are our systems working?

The answers to these questions help you determine which products to keep, whether to add or reduce staff, whether to enter or exit a market, which marketing campaign to undertake

So where does WordPress fit in?

You can use WordPress to manage your organization and centralize forms, content, commerce, appointments/events, services, social conversation, contracts and payments, account management.

Tech Liminal uses a lot of services, and they’re planning to narrow that down. Getting rid of EventBrite, for instance. Every system creates friction in your business. Make a mind map of these for yourself so you can figure out which ones you don’t need.

“We never use our Google Sites ‘Intranet’: it’s a pain.”

Beware of VC-funded startups that are not yet profitable: they may go away and take your data with them. (Lisa LaMagna had this experience with Zirtual.)

Business Intelligence Reports and WordPress

AMR Users plugin will tell you anything at all about your site’s users. It’s very fast to query because it caches tables.

WooCommerce reporting will show you how much you’ve made, and you can export it, but it’s incomplete. There’s always more that you want. There are several reporting extensions for WooCommerce to expand what you get in the basic package.

One of WP’s strengths is the small number of database tables. In terms of what you want to report on, it’s posts, post meta, users, user meta, terms, term meta.

The meta tables help keep the main tables simple. Writing SQL queries goes well when you have a moderate number of users and meta records. But meta tables can really blow up.

If you write plugins, remember that storing data in an array makes it harder to query.

When you get hundreds of thousands of users, your queries start to time out because there is SO MUCH META. For a while you can just increase your hosting, but eventually you have to find another solution.

Creating intermediary tables to make reporting more efficient. It takes about 10 seconds to generate this table for 290,000 users on the Social Media Week site. Intermediary tables do not mess with the original data.

For displaying these tables, Anca uses jQuery Tables.

Understand your metrics: what are you trying to measure? You can’t measure everything.

Business Intelligence Takeaways

  • Learn where the data is.
  • Learn a little SQL.
  • Make your report actionable.
  • Leverage third-party services.

Business Intelligence Tools

Domo business cloud lets you aggregate your data and report on it. (It’s a data warehouse, a term Anca hasn’t used for a long time..)

Google Sheets (or Excel) for viewing all that table output and creating graphs. Sonja says that the number one business intelligence tool is Excel.

If you start using Salesforce, you will need to learn how to use SQL queries.

Points to Remember

  • The thing about data is that your brain will impose patterns where they don’t exist.
  • In order to turn data into information, you have to understand it.
  • Test your assumptions. Figure out ways to validate what you think you’re seeing.
  • You can’t just install a tool–if you don’t understand what you’re doing, they won’t be helpful.
  • If you do nothing else, download and install AMR Users (assuming your site has more than 2 users)

Where to Learn More

There are online courses and books about becoming a data scientist.  For example:


Dec 2015: Making WordPress Easier to Use

This is an expanded version of the “Not Everyone Is a WordPress Expert” talk that I gave at WordCamp Sacramento in November. In it, I cover the developer-client disconnect about the difficulty of WordPress and several approaches we can take to making WordPress more client-friendly.

For the December meetup I added a discussion of Calypso (not yet released at the time of WCSAC) and more in-depth coverage of the Editus plugin from Aesop Interactive. (TL;DR: Calypso is cool but as is won’t be likely to help our clients much, whereas Editus is extremely promising.) I also briefly mentioned the Snowball plugin from the Open HTML Group.

I also had a chance to use Beaver Builder on a real client site, from which I concluded that in most cases this is a tool to make WordPress easier for the people who build the sites than the people we build them for.

Nov 2015: Getting Readers Engaged: WordPress Comments & Commenting Systems

At the November 2015 East Bay WordPress Meetup, we discussed comments on WordPress blogs, including when to enable comments, plugins to blog spam, third-party comment management systems, and plugins like Wheepl and Postmatic.

Prior to the commenting discussion, we introduced some of the features coming in WordPress 4.4, like responsive images and term meta.

When to Allow Comments

WordPress allows comments on posts by default, but you can turn them off in the Settings | Discussion page. That’s also where you choose whether comments will be moderated and whether people have to be logged in to comment, and what placeholders to use for commenters who don’t have Gravatars.

Turning off comments on pages by default was a smart move made in WordPress 4.3. There are not many pages suited to comments.

It’s possible that you don’t want comments on your site, not even on blog posts. But if you want to encourage interaction and engagement, comments can be a good thing. If people ask to be notified of follow-up comments, you have an opportunity to conduct longer discussions–and others who might find those conversations helpful can see them, which they can’t if you just exchange email with the person who comments.

Comments can also give you ideas for future blog posts (when readers have questions, or when they disagree with you) and give you an idea of what your readers want.

How to Encourage Comments

Some blogs seem to attract a lot of comments and some not so many. Controversial posts inevitably attract comments, but you don’t want to stir up controversy for its own sake. The Official BNI Podcast site encourages comments explicitly, asking listeners to post about their own experiences with the podcast topic.

Responding to comments (publicly, by replying to the comment) also encourages more people to comment, because they know you are reading the comments.

Establish a Comment Policy

Make it clear that you will not tolerate personal attacks, profanity, or pointless self-promotion—unless, of course, you actually want to encourage those things. There are plugins to allow you to display your comment policy above your comment form, or you can modify the comment form template (in a child theme).

Avoiding Comment Spam

Akismet is the 800-lb gorilla of spam-blocking, but you are supposed to pay for it on all sites but personal blogs. (Pricing is affordable.) Also, Akismet stores spam messages in your database for 30 days. Spambots are relentless and you can accumulate a lot of spam in that time, bloating your database.

Try the Anti-Spam plugin by Webvitaly as an alternative. It blocks all spam produced by bots, without Captcha, which Sallie believes is the instrument of the devil. (There have been lots of studies done to show why Captcha is more trouble than its worth, in case your own experience hasn’t shown you this.)  Sallie uses this plugin on nearly every site she builds.

Native WordPress Comments

There’s actually nothing wrong with the commenting system built into WordPress, at least if you get only a moderate number of comments. You can choose to require name and email to comment, to moderate all comments, to require a poster to have a previously approved comment before posting, or to require readers to be logged in to comment. (Unless you are already running a membership site, you probably don’t want people to register as users. Also, this requirement tends to deter commenters.)

WordPress displays a user’s gravatar next to their comment, if they have one. If not, you can choose to display a variety of placeholder images, or nothing.

Jetpack Comments

Jetpack Comments allow people to log in with Twitter, Facebook, Google+, or instead of filling out their name and email. People like the convenience of logging in with a social account.

The down side to Jetpack Comments is that you have to use Akismet to block spam–other anti-spam plugins won’t work. Jetpack comments are also difficult to style, because the Jetpack CSS wants to override everything else.

Social Comments

If you want to allow people to log in with their social networking accounts, you have more options than just Jetpack. Two we looked at are Social Comments and Facebook Comments. Social Comments lets you log in with Facebook, Google+, or

Facebook Comments, naturally, requires a Facebook account, and uses Facebook’s styles to display comments. There are actually a few people left on the planet who don’t use Facebook, which is something to keep in mind when choosing a social commenting plugin.

Third-Party Systems

The two major third-party systems for comments are Livefyre and Disqus. (Disqus sponsored one of our past meetups.) If you have a blog that gets tons of visitors and tons of comments, one of these may be for you. (Livefyre especially is aimed at enterprises.)

These tools let you log in with social accounts and they help you keep track of posts you’ve commented on. They also help with managing spam and other problems, relieving you of the burden of moderation. Importing your comments back into WordPress if you stop using them is possible, but might be awkward.

Postmatic: Email Commenting

Postmatic arrived to considerable fanfare. It allows people to not only follow your comments by email, but respond to comments by email–and you as the blog owner can reply to comments without having to log in to WordPress. There are free and pro versions.

The developer of Postmatic kindly offered a premium license to give away. The winner of the drawing was Maggie Wu.

Wheepl: Comments Across the Web

Wheepl was supposed to be our sponsor for this meetup, and give a demo, but the developer got stuck in Canada because of visa issues.

Wheepl is a real-time commenting system which exists apart from WordPress to help you conduct and track conversations across platforms. It looks interesting, but it’s not clear where your comments live if you want to be able to keep them. We hope Mukul Sud will be able to come to the meetup at another time to provide his demo and answer questions.

TL;DR on WordPress Comments

Comments may not be appropriate for your site (or your client’s site). But for some sites, comments are a great way to engage readers and get ideas for new articles. WordPress and various third parties offer multiple ways to block spam and increase interaction.