WordCamp Joburg – Want to setup an online store?

Here are my slides from my workshop from WordCamp Joburg 2016. Most of the content was covered in the workshop (not on the slides) but the slides might give you a good idea of the flow.

The stuff you’d really care about is most likely where to get the software that we used. Here are the things we used in the workshop:

Remember, you don’t have to use these plugins but they’re a good store. You can head to the WooCommerce Extensions page for plugins that add functionality. You can also look on WooCommerce, Themeforest and even the WordPress Theme Directory for more themes.

Here’s a link to my slides. I’d love to get feedback from you about the workshop and anyway I could improve it 🙂

What is continuous integration and what does it have to do with WordPress?

CONTINUOUS INTEGRATION WITH WORDPRESS SERIES

This is the first part of a 6-part series of posts about continuous integration with WordPress. You can find out more information about why I’m doing this here.

  1. What is continuous integration and what does it have to do with WordPress?
  2. Using Github and Travis CI to begin your continuous integration journey
  3. What is the difference between unit tests and integration tests?
  4. Writing unit tests to improve your code
  5. Writing integration tests and making your code robust (everywhere)
  6. Additional tests you can do for your WordPress projects
  7. Continuous integration with WordPress resources

So, what is continuous integration?

Continuous integration (CI) is a practice that requires developers (especially teams of developers) to integrate their code multiple times a day or as often as possible into a single repository. Every commit into this central repository will trigger an automated build that will check and verify that the code still works.

To verify the code, you usually run a number of tests. There are a couple of tests that you can run including the testing of coding standards. Coding standards may not affect your code working in production but it does allow for teams work more efficiently with each other – one purpose of continuous integration.

The main tests you want to run are called unit tests and integration tests. I’ll describe the differences of each in part 3.

Further Reading:

Why do I need continuous integration?

There are so many reasons why CI is important for you, your team, your business and / or your open source project. It’s essentially a process that will level up your entire workflow and allow you build projects more efficiently. Here are some of the benefits that I think are key:

  • Smaller regular commits allow for you to find out when an issue was introduced and allow you to fix it quickly.
  • Automated builds mean that testing becomes a non-event (basically your team can’t forget to have tested the software as it is done for them).
  • Testing in different environments makes sure your code is working as expected in as many places that you can think of.
  • Bugs are found and communicated early on which means you can fix them quickly.
  • Bugs are generally found before they go into production.
  • Troubleshoot less and code more – my personal favourite.

To me, it’s quite clear that continuous integration is key to every project and that moving teams of people onto a CI workflow will literally take your project to the next level.

How can WordPress plugin and theme developers benefit from continuous integration?

Having spent some time with this over the last couple of months the benefits are so clear to me. The benefits of CI far outweigh the implementation of it and your end-users will thank you for it (by buying more, thanking you more or using your software more). Here are some of the benefits:

  • Your code will work most of the time as you’ve tried to break it with unit tests.
  • Your code quality generally improves especially if your tests check for coding standards.
  • If your plugin / theme relies on other plugins or themes you’re able to verify that your code works with different versions of their code. This includes new releases.
  • You’re able to verify that your code works in different software environments (think PHP versions).
  • The most important benefit is that you’re able to test that your code works with different versions of WordPress. You can even check your code works with WordPress in different environments as well.
  • You can test a future version of WordPress before it’s launched so that your plugin / theme is ready when it is released.

What next?

I hope this has helped understand the clear benefits of using continuous integration with your WordPress project. In the next part, we will be setting up a quick project and then will implement continuous with GitHub and Travis CI. I’m a big fan of doing practical learning and so you’ll get your hands dirty from the start.

Book Review: The Innovators: How a Group of Hackers, Geniuses, and Geeks Created the Digital Revolution

This must possibly be one of the best books I have ever read. Not only that, but I learnt more about computers and how they work than at any place of education.

If you’re into tech and if you’re into innovation, then this book is a must read. Not only does is paint a really good picture of where the idea of computing started, it also displays what is required to truly innovate (hint: it’s not only up to an individual).

The guys that you’d expect to be in the book such as Steve Jobs, Bill Gates and Larry Page are there for obvious reasons. However, it was the people that lead to the really amazing theoretical and engineering advancements that really caught my attention. The way some of the major improvements that lead to the fundamental components of computing sometimes got me totally surprised and in awe of how exactly the just came about.

The book really is a long read so maybe take it chapter by chapter if you’re not a technical person. Also, don’t be too concerned if you’re not technically inclined – the book has its fair share of technical speak but it also has a fair share of both historical information (especially for women) and the ways innovators thought and worked over time. This earns my first 5-star rating for a book so I highly recommend it.

The Innovators: How a Group of Hackers, Geniuses, and Geeks Created the Digital Revolution Book Cover The Innovators: How a Group of Hackers, Geniuses, and Geeks Created the Digital Revolution
Walter Isaacson
Simon & Schuster; First Edition edition
2014
Hard Cover
560

Following his blockbuster biography of Steve Jobs, The Innovators is Walter Isaacson's story of the people who created the computer and the Internet. It is destined to be the standard history of the digital revolution and a guide to how innovation really works.

What talents allowed certain inventors and entrepreneurs to turn their disruptive ideas into realities? What led to their creative leaps? Why did some succeed and others fail?

In his exciting saga, Isaacson begins with Ada Lovelace, Lord Byron's daughter, who pioneered computer programming in the 1840s. He then explores the fascinating personalities that created our current digital revolution, such as Vannevar Bush, Alan Turing, John von Neumann, J.C.R. Licklider, Doug Engelbart, Robert Noyce, Bill Gates, Steve Wozniak, Steve Jobs, Tim Berners-Lee and Larry Page.

This is the story of how their minds worked and what made them so creative. It's also a narrative of how their ability to collaborate and master the art of teamwork made them even more creative.

For an era that seeks to foster innovation, creativity and teamwork, this book shows how they actually happen.

Introduction to Continuous Integration with WordPress – WordCamp Cape Town 2016

At WordCamp Cape Town 2016 I did a quick intro workshop into continuous integration with WordPress, which covered the principles of continuous integration (CI) and a few ways to start with unit testing and integration testing.

Sadly, I didn’t have enough time to get through the entire workshop and really wanted to get people trying out the fun stuff. But, as promised, you’ll find the presentation further down the page, which you can go through in your own time.

In addition, I think it’s worth doing a step-by-step blog post series on this topic because I think it will enable everyone to get a better understanding of CI and really get the hang of it. Once I’ve published each post I will update this one with a link for your reference.

If you have any questions, please free to drop me a comment here or on the Github repo (the one I used in the workshop).

Continuous Integration with WordPress Series

  1. What is continuous integration and what does it have to do with WordPress?
  2. Using Github and Travis CI to begin your continuous integration journey
  3. What is the difference between unit tests and integration tests?
  4. Writing unit tests to improve your code
  5. Writing integration tests and making your code robust (everywhere)
  6. Additional tests you can do for your WordPress projects
  7. Continuous integration with WordPress resources

Link to Presentation on Google Slides

Discomfort: The Best Way to Learn

Sometimes, you just have to put yourself out there to push yourself to learn great things and standing in front of people may be the best way to learn.

On Thursday (7 September) I’ll be doing a workshop at WordCamp Cape Town 2016 on continuous integration. You may ask, what is “continuous integration”? Well, up to a couple of months ago I had only heard this term and never really understand what it was.

Over the last few months, I’ve been dabbling in it and trying to apply it effectively to the environment and workflow I use. All I knew was that it was important and that I had to start applying it.

When my speaker application was approved and the one idea of me speaking about continuous integration was accepted, I really had no choice but to use it and learn a lot more about continuous integration, and quickly.

I realised, as I was finishing up my workshop notes, that sometimes it’s actually a lot easier to learn something when you’re under pressure. There’s definitely no more pressure than standing up in front of a whole lot of super clever people and telling them about technology.

To, that’s what I’ll be doing on Thursday, putting myself out there, hoping to help a bunch of people but really just pushing myself to learn more.

What’s your best way to learn?