Eric Mann has published a post on his blog titled Bundling and Bloatware, in which he describes his frustrations with the Jetpack plugin doing a lot of the exact opposite of what’s in the core WordPress philosophy:

The epitome of everything opposite of this drive to pare WordPress down to a barebone feature set was Jetpack by Automattic. […] It began to add more and more features as the Automattic team brought other projects into the fold, though. Today, Jetpack bundles 33 discrete features, each of which could ship (and in many cases has shipped) as a separate WordPress plugin.

This goes well with the post I wrote a little while ago, about lean and mean plugins. It’s also something that I struggle with every time I use Jetpack (3/34 features enabled here on this site). I’m all for a modular approach in Jetpack, so we can load just the modules that we need on our servers. Heck, I would even prefer them to continue to release all these plugins as actual separate plugins.

When you go read the post, be sure to check out the comments as well. Some of the Jetpack development have joined the conversation there and more or less defend the decisions the Jetpack plugin has made. I can’t say I agree with them, but at least this post opened up the conversation again.

Our first Google Day

Today we did our first Google Day. For those of you who don’t know the 20% time offer, Google offers her employees 20% of their time to work on side projects. We decided that the side projects we work on are preferably projects that benefit the company in the long run, but can be anything.

At first I wanted to (finally) dive into some other programming language, like Ruby or finally get my hands on some Node.js. None of this all happened though, as we discovered during some discussion that we really needed a project management tool and we never took the time to properly set things up. Continue Reading…

Vlogging as a developer

For a while now, I’ve been trying to think of ways to do more with video. At the top of my todo list is something called “the vlog experiment”.

I asked on Twitter why I didn’t know of any developers who post vlogs. I got a lot of responses, but nobody was able to name someone. Finally, Jeffrey Way’s response gave me the push I needed. The fact that there are no developers out there posting vlogs, probably means that there is room for someone to start doing this (or it means that it’s a bad idea, but let’s not assume that’s the case…). Continue Reading…

Premium WordPress plugin developers, can we have access to your version control please?

We’ve been telling customers to always be on the latest and greatest version of everything WordPress related. It has become the de facto answer to any bug report: “Are you running the latest version of plugin x and y?”. That’s fine, for most use cases. But what if I’m in a situation where I can’t be at the latest version? Or what if I find a bug in the latest version and have to restore to an older version?

Of course, we run our version control for websites. We can restore older versions of plugins after we find a bug. This requires us to have the premium plugin in our own version control, writing our own history. While this works fine, there are a couple really big downsides to this. Continue Reading…

I’m not a sysadmin by any means, but I like to think that I know how to setup a little server environment. Having used Vagrant for a long time now helps, it definitely lowered the bar of getting into it.

One thing that has puzzled me for quite some time, is so silly that I wanted to document it. Maybe I can have a good laugh about it when I look back at this in a couple months. Long story short: PHP uses a different php.ini file for each program it loads in. This can be in the command line, or anything really.

So if you want to install the mcrypt extension for example (in my case on Ubuntu: sudo apt-get install php5-mcrypt) and wonder why it isn’t loading when you use PHP on the command line; make sure the extension is loaded in /etc/php5/cli/php.ini. In case you use PHP-FPM as well, make sure to load the extension in /etc/php5/fpm/php.ini as well.

I have spent hours to find it, only to forget this is a thing a couple weeks later when it showed up again. Call me silly, but a quick Google search learned me that lots of people are struggling with this issue as well. If this post isn’t just going to give me a good laugh when I find it in a couple months, maybe it will help someone who stumbles upon it.

Related Posts for WordPress review, now it is premium

Ever since Barry announced that he’s working on a related posts plugin, I’ve been keeping track of the project. Now that it’s available, the reviews for the free plugin have been five stars all the way, so there must be something good in it, right?

The one thing that has always been a challenge for related posts plugins, is performance. Related Posts for WordPress makes a bold statement about that:

Related Posts for WordPress won’t lag your server!
We don’t think having related posts should slow down your website. That’s why Related Posts for WordPress creates its own cache and does all the heavy lifting in the admin panel, keeping your website fast as it should be!

So it’s free, gets five star reviews all the time and is not making my site any slower? Sounds too good to be true? Well, the new premium version of the plugin adds even more juice. It offers related posts for all (including custom) post types, support for all (custom) taxonomies and themes for the output of the related posts (no coding required). Continue Reading…

Andrey Savchenko, better known as Rarst, announced that he’s removing all his WordPress plugins from the official repository. He’s been talking about it for a while, but now finally pulled the trigger on this decision.

Things like the mandatory support forum for each plugin, without the option to disable it or use an external support system, is something that has been bugging me a lot. Now WordPress core will start accepting pull requests on GitHub (as announced in Matt’s Town Hall talk at WordCamp San Francisco), the version control state of the plugins repository becomes even more painful:

While SVN is usable it is hardly pleasant or popular for modern development, lacking in newer distributed version control paradigms, performance, and other conveniences. More so WordPress actively discourages using its repository for active development, reducing it to storage mechanism with updates only happening for release versions.

I agree on a lot of Rarst his points, but am not really at the point of removing my plugins from the repository myself. What I do hope, is that decisions and bold statements like this post can become a catalyst for all the changes in the WordPress ecosystem.

This is why you don’t bundle plugins in WordPress themes

Yesterday, Sucuri published a very detailed document about a critical vulnerability in the Slider Revolution plugin. This is a vulnerability that’s about as bad as they can get. It allows access to files like wp-config.php and makes it fairly easy to compromise a website.

This wouldn’t be so bad if it wasn’t the case where the plugin author decided to not disclose the vulnerability and patch it without notifying their users:

The problem was fixed 29 updates back in 4.2 in February. We were told not to make the exploit public by several security companies so that the instructions of how to hack the slider will not appear on the web.

Right now, the exploit is being actively exploited and lots of websites are compromised because of it. But it gets worse. This plugin is bundled in a ton of themes sold on the internet, including some very popular themes on ThemeForest and other marketplaces. All of those sites are probably vulnerable to this exploit and can be compromised within seconds.

The good news is, there is a patch available. Users of the plugin can just update and the vulnerability will go away and their website will be safe again. There is only one problem. The themes that come with this plugin bundled, probably have no idea this vulnerability even exists and more important: They have no easy way to update the plugin. Yikes. Continue Reading…

The courtesy of explaining your issue properly to a developer

I don’t mind people emailing me about issues they are having with my code. Whether it’s some old snippet I posted on a GitHub gist, or when people contact me about something they stumbled upon with WooCommerce (even though I’m no longer working for WooThemes).

Sometimes I know the answer, sometimes I can only point them in the right direction. I my best to make sure they can overcome their issue, whatever it is.

In order to continue doing this, I maintain one strict rule: Explain the issue properly. Emails that just say “it doesn’t work” are likely to get trashed. You don’t drive you car into the garage and tell the mechanic that.
Continue Reading…

Watching the WooCommerce ecosystem continue to grow

It’s little over 2 months since I left my job at WooThemes. As I explained in that post, this didn’t mean that I was never going to look at WooCommerce or any other WordPress project again. In fact, I’ve been working on a couple WooCommerce related projects since I’ve started my new job.

Not only did the WooCommerce plugin recently hit 4 million downloads, there is also a dedicated conference being held later this year. I think it’s safe to say that WooCommerce is still growing very fast.

With the recent addition of fellow Dutchman Barry Kooij to the team, I’m sure they have enough development power to make sure WooCommerce continues to grow. And because more and more people start to use the plugin (as a developer or a business owner), the ecosystem around it is growing as well.

Being outside of the WooCommerce core development team for 2 months now, made me look at the plugin with a different set of eyes.
Continue Reading…