Posted on

Canvas Theme for WordPress

As some of you may know, I work over at Automattic on WooThemes themes within the Themes Team. My primary project is the Canvas Theme. I’m currently in the middle of¬†making it even more awesome, and I thought I’d put my money where my mouth is and set it to be this site’s theme of choice.

I previously used The One Pager, and it was great for a while, but I no longer want to generate leads from the site – I’m just going to be blogging for a while ūüôā

So sit back, enjoy the posts, and keep an eye out for some cool updates coming to Canvas soon!

Posted on

Thoughts on 2015

Yes, I know, another year in review type post…but for me this year has been profound in a variety of different ways.

Today I finish up my 2015 working year, and return in early Jan, but it’s also the end of the first 6 months since Automattic acquired WooThemes. It’s been quite a time of nostalgia for me, particularly yesterday when some framed photos of each year’s WooTrip arrived at the Cape Town office.

It’s funny how after 6 years so much has changed. I look at that photo of the 6 of us, and even though only 4 are still around, it’s pretty crazy and extremely humbling to see what has been accomplished since then.

Woo Photos
Woo Photo wall, I’m furtherest on the left in the top left framed picture.

 

When I joined Woo, WooCommerce was merely a thought, no code, just an idea. And we wondered when we would get to it. It’s funny how a single product can change¬†a business and capture the embrace of a community.

It hasn’t been all roses to be honest over the past 2 years for me. There have been times where I’ve been unsure of things and my future, but I’ve sought prayer and wise counsel throughout and I’m grateful for those people in my life.

Probably the biggest change this year for me was the shift away from doing additional freelance work (outside of Woo). I did freelance work mostly for fun and if there were interesting projects, not as a “have to”. But looking back, I probably took on more than I should have, and that sucks.

It’s been well documented by several people that Automattic has a COI policy – and, I don’t think it’s bad, I actually think it’s great. For me, I’m pretty drained at the end of my work day these days, and I don’t want to see a screen! I just want to relax with my family, pickup my guitar, have a swim, see my friends, basically detach from the world of tech.

This has been a massive mindshift.

I used to be “always on” but now I try to focus all my energy during my work day and detach after hours. The funny thing about that, is I’ve found I’m a lot more productive these days. I feel more focused at work, I get more sleep, and I’ve built a more meaningful relationship with my wife and daughter.

All in all, it’s been a tough year (in a good way), but has been a very rewarding year. I honestly feel proud of what I’ve been part of accomplishing at Woo, and now at Automattic, how things have changed for me personally, and the outlook for 2016. It’s an exciting time and I’m looking forward to connecting again next year, whether it’s online or in person.

So, for now, I’m signing off. Hope you all¬†have a wonderful Christmas and New Year period.

See you later!

Posted on

Fixing Features First

I’ve always been fascinated by people who simply complain about things that are within their power to change, yet they don’t seem willing to actually make that change.

It’s like complaining about your countries president, and then not turning up to vote.

I’ve seen this often in the WordPress world, recently specifically about XML-RPC, and a few¬†of those complaining haven’t contributing jack squat to core (other than conversations)

Something I don’t like about core is how authentication works with the WP-API. But…I’m actually trying, in my own time, to see if I can figure it out before I go wading into deep waters of emotional conversation on make.wordpress.org – too often people weigh in about features without checking their emotions or before attempting/suggesting a solution.

As a long time plugin and theme developer I appreciate customers who have tried to solve the problem first before complaining at me. I happily apologise when things are broken, but I’ll always go the extra mile for those who have shown initiative!

Perhaps rather try a fix first next time?

 

Posted on

Joining Automattic

After the recent acquisition of WooThemes by Automattic, I’ve officially accepted an offer from Automattic to be part of their team as part of the acquisition.

And so ends my 6 year journey with WooThemes, yet it carries on as I’ll still be working on WooThemes products like FlexSlider for the foreseeable future. Follow me on Github for any open source stuff I do in the future.

What does change is my involvement in side projects.

So, I’m officially making my jQuery plugin free as of 1 July 2015, and I’ll be selling off a bunch of my WordPress and software related domains and websites.

I’m also going to do a complete refresh of this site, the content will remain but it will be more blog focused, specifically on WordPress and JavaScript.

Here is a list of stuff for sale, preferably to people wanting to carry on with what I had envisioned for the sites, I’ll add links as soon as they go up for auction, mostly on Flippa.com

  1. GPLCode.com РBid Now to Own!
  2. GPLMarketplace.com
  3. CapeGospel.com
  4. JoinWP.com
  5. WPJoin.com
Posted on

Why Themeforest authors why….

So….all this commotion regarding the Slider Revolution plugin being bundled in themes has caused quite a few headaches for people. Myself included…

I spent a fair chunk of an evening this week “updating” a friends (staging) site using this theme ->¬†http://themeforest.net/item/chariot-professional-responsive-portfolio-theme/5817175 to make 100% sure it was secure.

Here’s what I had to do…

  1. Backup the site – obviously
  2. Download the latest theme package from ThemeForest – fair enough
  3. Deactivate all the plugins – ok then…
  4. Delete all the plugins – huh? why? Oh right….cos you have your own custom installation of plugins….right….
  5. Upload the new theme – smooth, theme options maintained, hope restored.
  6. Reinstall and active the new versions of the plugins – worked well.
  7. Pour a double whiskey – because half the¬†freaking content (such as slider images) is now gone/broken/i don’t know

So yes, I’m at a point of frustration now, because even as a seasoned developer on¬†over 100 themes I now have to sift through backups of what SHOULD have been a smooth upgrade process just to fix the content. Loving it.

And before you ask,¬†fortunately this wasn’t a live site, it’s a staging site, so luckily his live site isn’t buggered. And it’s not like I don’t like the Theme, just to be clear….just not this crappy plugin activation method.

Well now…that was fun….maybe I should start a marketplace?

Posted on

Jetpack Photon image_downsize() issue

Sometimes in WordPress code you have the need to get an attached image, for example in a featured slider. To do this we make use of the wp_get_attachment_image_src() function.

The reason we do this is to grab the image properties such as height etc instead of just the url in order to add a property for dynamic slide heights.

However, there is a problem with this when a user is using Jetpack and the Photon service. Jetpack uses a function called image_downsize() which does not return the required image object/array. It simply returns the url.

So in the example below, height would not normally be able to be returned with Jetpack active:

$featured_height_id = get_post_thumbnail_id();
$featured_height = wp_get_attachment_image_src( $featured_height_id, 'full' );
$featured_height = ' height: ' . $featured_height[ 2 ] . 'px;';

However, I’ve added 2 lines that fixes this -the¬†add_filter¬†and¬†remove_filter¬†for¬†jetpack_photon_override_image_downsize¬†action.

$featured_height_id = get_post_thumbnail_id();
add_filter( 'jetpack_photon_override_image_downsize', '__return_true' );
$featured_height = wp_get_attachment_image_src( $featured_height_id, 'full' );
remove_filter( 'jetpack_photon_override_image_downsize', '__return_true' );
$featured_height = ' height: ' . $featured_height[ 2 ] . 'px;';

And before you point out that this is not technically Jetpack’s fault – it only occurs when using Jetpack Photon. Deactivate the plugin and all is fine and dandy. image_downsize() is in WordPress core (see link below).

Related Github issue here -> https://github.com/Automattic/jetpack/issues/607

image_downsize() codex -> http://codex.wordpress.org/Function_Reference/image_downsize

Posted on

Offline Support

Four years ago this month¬†I joined WooThemes. The time has gone pretty quickly and I’ve had some great times in the office, interacting with our remote staff, and of course the WooTrips ūüôā

But what most people don’t know is how incredibly scary it was for me to take the job back then.

So here’s some context; my wife and I we’re newlyweds, married for less than six months and I was in a senior position at a well known development agency in Cape Town – WooThemes was not well known in South Africa at all, and the employees numbered 6. Oh, and there was no office phone number….and they were a fully online business….in South Africa….what the??

The general response I got from most people at the time was “that doesn’t sound right, it sounds very risky” – laughable now, but not back then.

The difference was that I’d used several WooThemes, I knew their quality, so I was a definitely a fan, but most importantly I had the unwavering support of my wife. I actually never applied for the job until applications had unofficially closed (I found this out after I was hired). ¬†As I recall, it was a Sunday night when I told my wife about the position and she said “do it!”

So I applied, got a call the next day, went in for the interview the following day and was offered the job on the spot! Crazy but true.

2013-11-06 18.11.53

My wife has supported me every step of the way in my career, even when I’ve make mistakes, so what I’m saying is never underestimate those who support you and who you support – encourage at every opportunity, you never know who you might inspire!

Posted on

WordCamp Cape Town 2013 is here!

WordCamp Cape Town 2013 is only a few days away! A few of us local Capetonian WordPress community members have been organizing this years’ edition after last years’ organizer decided not to pursue it this year, and it’s been a great experience getting to grips with organizing a conference.

So now we are in the final stretch, grab your tickets now, check out the awesome speakers and the lineups, and come say hi on Thursday – I’ll be roaming around as a happiness expert and coordinating a few of the volunteers. WordCamp is all about the community, so let’s connect, have some fun and be inspired!

[box type=”tick” size=”large” border=”full”]Buy WordCamp Cape Town 2013 Tickets[/box]

[box type=”info” size=”large” border=”full”]See the WordCamp Cape Town 2013 Speakers[/box]

[box type=”info” size=”large” border=”full”]Check out the WordCamp Cape Town 2013 Schedule[/box]

 

 

 

Posted on

WordPress Heartbeat API example plugin – Pulse

One of the most important experiences for me at this years WordCamp Europe was meeting other people, specifically members of the WooTeam who I haven’t met before. One of them was Remi Corson, who after overhearing a chat I was having with Patrick Rauland, sat me down and showed me what he was working on with Heartbeat API.

It was an awesome chat! The power of collaboration between WordPress community members is so cool ūüôā and in the spirit of collaboration, I’ve decided to release an open source plugin that will help you get started with your own Heartbeat API development.

So check it out on Github, fork it, submit some pull requests, if we can make life easier for other WordPress developers wanting to use Heartbeat API in their products then that’s what I’m hoping for!

In the long term I’d like to contribute back to the Heartbeat API docs because they are severely lacking at the moment!

[box type=”download” size=”large” border=”full”]Pulse – Heartbeat API example plugin[/box]

Posted on

WordCamp Europe 2013

I’ve had the privilege of attending the first WordCamp Europe the past 2 days with the rest of the WooThemes crew and it’s been awesome! I thought I’d share some of the highlights for me:

Old Avatars, New Faces

I worked on WordPress 3.0 for menus with a few people but I never met any of them in person…until yesterday! I finally got to meet Ptah Dunbar and he’s a pretty cool guy! But that was just the first of many WordPress pro’s I got to meet…for me this conference has been a revelation to me in terms of understanding the community better – and not relying on twitter avatars to get perception of people.

Some of the (other) awesome people that I got to meet:

That’s what I’ll remember about WCEU – the people and the relationships. ¬†Even just hanging out with the WooThemes team and talking about code and ideas has been such an inspiration for me personally and professionally. Some highlights were talking about the Heartbeat API with Remi, and BuddyPress with Scotty B. Moments like that are priceless in a distributed team like WooThemes.

I’m hoping the talks videos will be online soon so everyone can check them out! And now I’m tired…sleep time! ūüėÄ

Check out my photos here and here.