What’s a developer going to code on during the holidays leave?

This is the first time this year that I have a couple days leave (starting today until the end of the year, bridging between Christmas and New Years Eve), without going on a trip somewhere or spending the first two weeks with our newborn baby.

Of course I will be spending a lot of time with family and will not do anything work related, but being away from a computer for almost two weeks is probably not going to happen. I like to use these opportunities to work on various side projects that never got past the drawing board phase, or badly need some refactoring. You can say coding is an addiction, but I find it very relaxing to actually have some time to work on these fun projects.

Coen Jacobs dotfiles repository

So today I’d like to share some projects that I’ll be working on in the next couple days. Maybe it will give you some inspiration on fun little projects to do or some random code or learning to work on. Continue Reading…

Multiple smaller commits please!

A couple days ago, I published about the art of commit messages. It really is an art, to think of a clever subject line possibly supported by the body of the commit message, that really covers everything in the commit. I didn’t mention what exactly should be in the commit though, so I figured to write some more about commits.

You can add everything from a single character change to a complete new version of your software in a single commit. I try to apply the following rule in my commits: If I need to use the words AND or OR in my commit message, the commit is too big. Commits generally should only change one thing, or consist of multiple smaller commits.

Not only does this make your history easier to search through, more advanced tools like git blame are a lot more efficient and easier to use, because it’s much easier to find the commit you are looking for. Continue Reading…

Is it worth to switch to Sass for WordPress plugins?

Now that Sass has been adopted in WordPress core as CSS preprocessor, we have discussed moving away from LESS in WooCommerce core. Given the amount of discussion this change involved for WordPress core, there must be at least some pros and cons for us in here too. Obviously, we want to stay in line with the techniques used in WordPress core, but we don’t want to redo all our stylesheets just for the fun of it.

While thinking about this process, I started to think about how this could be applied to all WordPress plugins. We are all for using the same techniques as WordPress core does. But beyond that, are there any obvious advantages over switching to Sass from LESS?

Are there any benefits that I’m not thinking about just yet, what a WordPress plugin can benefit from when using the same preprocessor, or am I now overthinking this? Continue Reading…

My city finally has a Starbucks store

This might sound cheesy, but I am incredibly happy with the Starbucks store that opened today in my city. I have been bugging my coworkers for a couple weeks already about how excited I was as soon as I heard that the store was coming.

So why am I this excited about this? I know a lot of people often say “well, the coffee is not that good” or “it’s way overpriced”. The meaning of the Starbucks to me goes beyond just the products. A little over four years ago, I met Amber in one of the first Starbucks stores in the country. Ever since, the Starbucks is part of my life. Continue Reading…

The art of commit messages

For our store of WooCommerce extensions, I do a lot of code reviews. We audit new extensions that have been submitted and I also always review any updates that I merge and deploy. The difference is in the amount of time that I spend on each review. For a new extension, we do a functionality check and code review. For¬†updates, I’d like to quickly browse through the commits since the last stable tag and see what has changed.

Often times, I find commit messages like “Update to v1.2.3″ or “Fixes #20″. Both messages explain something about the commit, but they don’t explain what the commit does.

In my opinion, a commit message should explain what has been changed. The examples I mentioned before are purposes of the commit, not the actual change that has been done. Most times, it’s good to mention the purpose as well, but the description of the change is much more important. Continue Reading…

WordCamp Norway, here I come!

It’s going to be the coldest WordCamp I’ve ever been to, but I’m very much looking forward to it. WordCamp Norway 2014 is taking place in cold Oslo by the end of January 2014. I’ve never been to Norway before (always wanted to visit), but I generally like snow and don’t mind cold, so I should be good to go, right?

WordCamp Norway 2014

All of us European based developers (James, Mike and myself) from the WooCommerce team will be there, joined by our WooCommerce support ninja and Norway based Scott Basgaard. So besides enjoying a good WordCamp (come on international speakers, we need English talks!), it’s a mini Woo-meetup as well! Continue Reading…

Opening your project to external contributors

One of the challenges I gave myself at the beginning of this year was to learn more about external contributions to open source projects. Not just to learn about my own contributions, but mainly about how you can make your project attract more contributions. This has proven to be far more complicated than I thought and it’s an overall slow process.

The main challenge is not to technically change it, but to actually see or measure what you need to change. It involves so many different factors and the human factor is one of the most difficult to deal with.

In this post, I’d like to share some of the lessons I’ve learned and what I’ve been able to apply on our WooCommerce development process already. Continue Reading…

Stay focussed while working remote

Before I joined WooThemes, I worked at an internet agency. It was an office job, working mostly regular hours at the same desk with the same people around. It wasn’t bad, I worked at client locations every now and then as well and could be fairly flexible with my hours whenever I needed to. This is nothing compared to the freedom you get while working remote, but staying focussed proved to be easier to me there.

Photo via Balaji.B

Photo via Balaji.B

Working remote gives so much freedom and that makes it so complicated at the same time. You define your own working hours, you have nobody checking if you are actually working and you basically run a one man show from your home office.

So what do us remote workers do to steer clear from temptations like playing games, watching tv or doing anything but work? Continue Reading…

PHP is not that bad

The internet is filled with articles about how bad PHP is. Try a quick Google search for “PHP sucks” and you find about 83 million results. Doing the same search for other languages still gives you millions of results, but PHP really stands out in these numbers.

Although I agree that PHP probably is not the most beautiful language to work with (it’s getting better), PHP must be doing something right. Most of the really detailed rants about PHP date from the old days of the language. I often feel that the arguments being used to claim that PHP sucks, are the same issues when talking about bad practices for developers. Of course you can write bad code in PHP, like you can in any language.

I’m a fan of PHP, but for different reasons than you might guess. I am very well aware of the flaws in the language and cringe every time I do silly stuff like mixing up needle and haystack order in function arguments. The claim that PHP is bad is too easy for me though, because it’s simply not true. Continue Reading…

What to do with old projects

A couple days ago, Tom McFarlin asked the following question on his blog: Should we delete old repositories? At the moment I read that post, there had been a couple comments on there already, which at that time seemed to explain my ideas on it pretty well. Now it’s a couple days after that, I’ve given it some more thought and would like to add some more ideas to this subject.

I agree with the two main opinions that were voiced in the comments; you either hide or delete the code from the public domain, or you clearly mark the old code as being no longer maintained. Of course there is also the option to just make sure that your code still works. Time consuming, very much, but it’s still a valid solution.

If you have too many projects to maintain or no longer want to maintain a project, it’s time to take care of it. There are a couple options available, but it all depends on the type of project we’re looking at. Continue Reading…