Creating fields in CMB2 for IP addresses and MAC addresses

I’ve been using CMB2 for many years now. It’s a great way for creating custom metaboxes in WordPress for user profiles, post types, taxonomies and more.

The plugin as it stands has fields types that suit most situations. However, there are a few instances that I’ve come across where I’ve needed to add my own field types to properly manage the data that is being entered.

Give each term in a given taxonomy a unique alphanumeric ID

I had a problem recently where I wanted to create a custom taxonomy and I wanted each term created within that custom taxonomy to have a unique ID, to use in the real world.

The use case in my scenario is that I wanted to create unique tags for storage boxes. I created a new taxonomy (inventory_location) and started adding my storage boxes.

An introduction to git and how I use it in my workflow

Today, I gave a talk at WordCamp Tampa about git, what it is and how I use it in my workflow.

As soon as I have a video of my talk, I’ll post it here, but for now, here are the slides and some useful links that I mentioned during the talk.

My unremarkable story of becoming a WordPress core contributor

It has been a goal of mine to become a WordPress core contributor for a few years now. I’ve tried on a couple of occasions but made more of a concerted effort last year.

I was aware of the Good First Bugs list and started there at the onset of the WordPress 4.5 development cycle in January 2016. I opened each ticket to see whether a patch had been submitted. I found a couple where patches were not present and where not much in the way of changes were required in order to put forward a suitable patch, thus increasing my chances of putting forth an acceptable patch.

A call for WordPress developers

I’m fortunate enough to have been working with WordPress for a number of years now and have built up a good client base to support my business.

However, add that substantial growth to having a wife and now, two young children and there’s simply not enough hours in the day. In order to keep serving my existing clients, responding to new requests and growing the business, I am needing to rely more and more on others to help me complete the work that comes my way.

I’m looking to build a pool of freelancers (not agencies) that are very proficient with WordPress whom I can send work out to. You can take as much or as little work as you want as your schedule will allow.

This is what the websites of central governments should look like – a homage to

Government is not usually at the leading edge of, well anything, but not least technology.

As the noughties rolled on, the UK Government had a wealth of information online, but it was so fragmented that you couldn’t be sure if you were reading the most up-to-date information or whether you were getting the information from the right source.

This is very typical of most governments in the modern age. If anything, we were probably ahead of most just by having that information online somewhere as opposed to other countries which may have been slower to put this information online.

In 2011, the Government Digital Service was created with a mandate to completely revolutionise the Government’s digital offerings and to adopt a “digital by default” approach where every service and piece of information is planned from the outset to be available or delivered digitally.

Free high-security SSL certificates through Let’s Encrypt

Ever tried installing an SSL certificate on your website? Sucks, doesn’t it? The whole process around procuring and installing SSL certificates is so archaic and cumbersome that it sends shudders through the body of anyone facing it.

After Edward Snowden let the world know that everyone is watching everything you do online, we started to realise that we should be able to use the Internet without every benign and every private bit of data being visible to others. The answer to this problem: encryption.

Encryption scrambles data between the provider (say, a website, server or application) and its end user, such that if the data is intercepted anywhere between the two, it can’t be read. If you own a website, the way you encrypt data sent to and from it is through an SSL certificate.

Late last year, several do-gooders came together and agreed that the status quo for producing and installing SSL certificates was terrible. So they set about changing it, and with the vision of allowing anyone to produce and install an SSL certificate with the greatest of ease and with zero cost, they created Let’s Encrypt: a non-profit certificate issuing authority.

My experience at 2015 WordCamp Tampa

This past weekend, I attended and spoke at WordCamp Tampa. It was the second WordCamp Tampa and was my third time speaking at a WordCamp (after 2014 WordCamp Tampa and 2013 WordCamp Orlando).

The talks

The sessions were not a letdown this year. I’ve yet to be disappointed by what I learn at WordCamps. Even though I bought a ticket to attend in person, I also purchased a live streaming ticket, so that I could watch the sessions I missed after the event (you get access to the videos for 30 days after the event).

In particular, Shawn Hooper’s talk on using wp-cli (similar to his WordCamp Columbus talk) was fantastic and made me want to start using wp-cli straight away.

My own talk

This year, I submitted a talk on Creating Custom Sites with Post Types, Taxonomies and Meta, which was accepted. I knew for about 6 weeks that I needed to prepare my talk, but could just never muster the time to finish it off. I’m ashamed to say that I didn’t finish my slides until 2 hours before the presentation and had no rehearsals.

Decisions, not options

Decisions, not options is a philosophy fostered in core WordPress development. It can be found on the WordPress site in the section discussing the philosophy of how WordPress should be developed. This particular point reds:

When making decisions these are the users we consider first. A great example of this consideration is software options. Every time you give a user an option, you are asking them to make a decision. When a user doesn’t care or understand the option this ultimately leads to frustration. As developers we sometimes feel that providing options for everything is a good thing, you can never have too many choices, right? Ultimately these choices end up being technical ones, choices that the average end user has no interest in. It’s our duty as developers to make smart design decisions and avoid putting the weight of technical choices on our end users.

It’s meant to make WordPress as simple as possible for the masses for removing options where 80+% of people will choose one particular option. Filters and hooks should be used to accommodate the needs of others.

When developers adhere to this philosophy, their users are content with how simple and robust the product is. The burden of deciding how the plugin/theme should work should rest with the developer, not the end user.

It would be great to see a return to plugins without settings pages and themes without color pickers for every single element on the site. To developers I say “Man up and make some decisions, while allowing users to make options with hooks and filters”.

Create a website for your children

As a web developer, with my own site for documenting my thoughts and life, it seemed very appropriate that the very same day I learned that we were pregnant with Ellie, I built her a website to document the pregnancy and then her life outside the womb. And just recently I followed suit when I found out that Jack was on the way.

To me, creating a website for my kids was chiefly important because I live so far away from my family. Being from the UK and living in the US, I have a whole group of people that I care about a lot, and whom would want to follow along with my children’s’ lives closely, even though we’ll only see each other every few years.

As a side benefit, it is an excellent way in this day and age to record your children’s’ lives. It’s the 21st century baby book, except that it’s living and breathing, can be updated regularly and everyone can see it (or everyone that you want to see it can see it).