Author / Julien Liabeuf

It’s been almost 6 months now. Officially. Less in reality. There is so much to take care of in such a process. I’m still finishing up some paperwork.

I felt like it was time, though. Time to think back and try to draw lessons from closing the business I’ve been running for nearly 7 years.

It’s a long time, 7 years. In fact, it’s the longest I have been working for the same company. Ever. It is definitely with a pinch in my heart that I came to the decision of closing down my company, N2Clic Limited.

The Begining

N2Clic was incorporated in 2013, but the journey started years before that. The farthest I can remember, my partner, Julien, and I, were discussing what business we would be creating when we were fruit-picking during the summers of our high school years.

We went our ways after high school and finally got serious about the business around 2010.

We started N2Clic as a small, side project in addition to our respective jobs. Things went slow but steady. In 2012, it was going well enough for us to decide to quit our jobs and focus on our web agency full time. […]

Continue reading →

I’ve been wanting to get onto PHPCS for quite some time now. While reading a blog post discussing it, I decided it was now or never. I should have started using PHPCS a while ago anyway…

So, in order to get things up and running, I did a quick Google search and ended up finding a pretty good tutorial, except that it is slightly outdated. Some of the instructions did not match the latest version of PhpStorm.

The article is How to Setup PHP Code Sniffer in Phpstorm on a Windows Machine from W3Guy.com.

NOTE: At the time of writing this article, I was running PhpStorm version 2016.2.1.

Most of the instructions are correct, except for a couple of them. Here is an updated version of the outdated steps. Also, you’ll need to have PEAR installed on your local machine beforehand.

Step 2

You will actually need to copy all the WordPress-xxx directories in CodeSniffer’s Standards directory as they rely on one another (otherwise you’ll get errors in PhpStorm).

Also, because I’m only using standard PHP on my local machine (no XAMPP or any pre-packaged web server), […]

Continue reading →

I have been using phpDocumentor on my Windows laptop lately, and one of the requirements is to have PEAR installed.

While this is a pretty simple process on Linux, it gets a little more complex on Windows.

Actually, it is not that complex. It is just difficult to find the proper resources (or at least it was for me).

I did find a number of posts / tutorials explaining the manual process of installing PEAR, but:

  1. It introduces possibilities of mishaps,
  2. I prefer when things are automated 😉

Automatically Install PEAR on Windows

First of all, I should specify that this was done on a Windows 10 Home x64 install with PHP 7.0.6. No WAMP, no MAMP, just PHP.

There are basically 2 steps required to install PEAR:

  1. Download the “installer”
  2. Run it
  3. Add the environment variables (yeah that’s more than 2 steps, but this one is optional. Bonus!)

Download go-pear.phar

PHP.net provides a super handy phar file that will allow you to install PEAR on your system in just one command line. […]

Continue reading →

My blog has been hosted on various machines from various providers. It is only recently that I started to aim for performance, though.

For the last couple of years, it has been hosted with EvxOnline. I then switched to a DigitalOcean (affiliate link, direct link available in article footer) droplet with ServerPilot.

While performance was definitely better with DigitalOcean + ServerPilot compared to EvxOnline, I wanted something even faster.

I have had my eyes on EasyEngine for a little while but didn’t have the chance to really try it yet. So the day I realized I made a typo in my ServerPilot’s app name, the maniac in me didn’t need another excuse to get started with a new stack.

EasyEngine vs ServerPilot

First of all, I need to say that I really like ServerPilot. I’ve used it for many client and personal projects. It is extremely easy to setup, the stack performs really well, and it keeps your server up to date. If you’re looking for good performance without getting your hands too dirty, go for ServerPilot.

If you want to push things a little further however, […]

Continue reading →

As a plugin developer who released a few plugins on WordPress.org, I sometimes feel like the song says: Je t’aime? moi non plus. Well, sexual content aside :p

There are two questions I’ve been asking myself a lot lately. Dan Cameron’s post What Now? No Way? Huh? made me feel that maybe others are asking themselves those questions too.

Disclaimer: this post is not at all a critic of the current system. I am not trying to provoke anyone in the community. I am merely trying to get answers to two selfish questions I’ve been asking myslef:

  1. Who am I in the WordPress community?
  2. What are my “rights”?

Prelude

While this is not the only thing I’ve been wondering about, this post was inspired by how incentivized reviews are being handled.

My first interaction with the .org team on this matter dates back to April 2016 when I released, in all honesty, a small library, WP Review Me, where discount codes were automatically given in exchange for a review. […]

Continue reading →

So you just got this new WordPress theme or plugin approved by the review team. Exciting!

You get your first downloads and you watch the stats all the time. What are you waiting for? We all know it: reviews! Especially 5 stars reviews 😉

Reviews are Everything

Indeed, reviews are often what convinces the user to use your product… or not. That’s why all authors are striving for good reviews.

There is another thing we all know, though: unsatisfied users tend to review more than satisfied users. This means that you can easily end up with some bad reviews even though your product is good and the majority of users are happy.

What can you do about?

It may sound simple (and it is) but you just need to ask your users to review your product.

WP Review Me

This is where this small library I wrote becomes your best marketing tool!

It does a very simple job: X days (you can configure X) after the theme/plugin was installed, the user will be prompted to leave a review on WordPress.org.

Technically speaking, […]

Continue reading →

One more NameCheap-related article. Yeah, I’m a big fan of their services!

TL;DR: FreeDNS can’t manage .is domains.

For some client work, I needed to use NameCheap’s FreeDNS service to manage a domain name with the .is extension.

After some back and fourth with the domain registrar to try and switch the DNS to FreeDNS, I finally got in touch with NameCheap’s support team and started what ended up being a 1-hour conversation on their live chat.

By investigating the issue bits by bits, we came to the conclusion that FreeDNS can’t manage .is domain names because it doesn’t fit the .is registry requirements.

The part that blocks everything is that FreeDNS’s nameservers’ TTL is set to 1800 seconds while the .is registry requires at least 86400 seconds. The NS‘s TTL can’t be changed, even internally by the NameCheap’s team.

So, sadly, a .is domain name can’t be managed by NameCheap 🙁

WordPress admin notices are great. They’re extremely handy for communicating an important message to the users of your theme or plugin.

Admin notices can be used for sharing an information, warning of a problem, etc. WordPress made is very easy to register with the admin_notices hook. There is one extremely important thing though: admin notice dismissal.

Dismiss an Admin Notice

Have you ever used a plugin that displays a notice that can’t be dismissed? Or a notice that comes back on every page load, whether or not you have dismissed it already? What a pain… Nobody wants that.

In WordPress 4.2, WordPress introduced dismissible admin notices. This is basically a front-end mechanism that hides a notice when you click the close button. But again, refresh the page and the notice is back.

Persistent Notices Dismissal

What you want is for a notice to be permanently dismissed once this close button is clicked. This is exactly what WP Dismissible Notices Handler does.

After writing admin notices dismissal functions over and over I realize how dumb I was for not having a re-usable library. […]

Continue reading →

I’ve been developing WordPress stuff for a few years now. During all this time, my development toolkit changed. A lot.

As I learnt new skills, I discovered new tools. This usually resulted in a gain of productivity, improved skills, and realizing better tools were available.

Even though this cycle definitely has a limit, I think I still have some nice things to discover. Docker for instance is something I’d love to have the time to dive into. Capistrano is also something I really want to learn more about.

As of today though, I’m really happy with my development environment. Here is what it looks like…

Development Environment

In this post I’m focusing exclusively on the environment and not the development tools per se. That could be a topic for another time…

My current development environment is composed of 4 tools (excluding all the basics like Git): Vagrant, Varying Vagrant Vagrants (VVV), Variable VVV (VV) and VVV Dashboard.

This set of tools makes it super easy to setup a production-like dev server, create new site “on the fly” and manage all the resulting mess 😉

VirtualBox

Yes I know, […]

Continue reading →

When working on client projects, e-mail delivery is a primary concern. Most of my clients (most people in general I assume) use e-mail quite extensively for lead generation on their site.

Making sure e-mails are correctly delivered is crucial. Unfortunately, the basic way e-mails are sent out with website is quite unreliable. The common function used in PHP for instance is mail(). As a WordPress specialist, I very often work with its WordPress wrapper wp_mail().

What this function does is send the e-mails using the hosting server itself. This is very dangerous, especially when using shared hosting. Poor delivery and blacklisting are the two major risks.

Email Delivery Services

I’m not going to list all the reasons why you shouldn’t use a hosting server to send out e-mails. I’m just going to say that it is more than recommended to use a dedicated e-mail delivery service. There are plenty available. Mandrill, MailGun, SendGrid, MailJet…

For all the small clients I’ve been working with, I’ve always used Mandrill (made by MailChimp). They offered a pretty nice free plan that was more than enough for small businesses. However, […]

Continue reading →