Technical

By Mike Mallett on 07/03/2016
Close up of a compact disc
Backing up your data is a critical process for any business, and as computers become more ubiquitous in our daily lives it is critical for many of us in our personal lives as well. Quite often this has never occurred to a person, whether personally or professionally, and at first it may seem complicated; But it's not.
A reliable and robust backup system really has two extremely important aspects:
Your data must be replicated in a separate physical location, AND
You must be able to restore from this off-site backup.

That's all there is to it! These two principles, applied together and tested...
By Mike Mallett on 10/02/2016
GlusterFS Logo
What is GlusterFS?
GlusterFS is a distributed network filesystem. It acts as a file system which can be attached to a server for storage like any other, but using network sockets it can be configured in a variety of ways to distribute the files across a number of disparate servers simultaneously and in a fashion which is transparent to users.
It can be deployed to replicate the same data across multiple servers (sort of like RAID mirroring), or bring together the free space of multiple servers into a single large volume (sort of like RAID striping), or distribute data across a WAN using "geo-...
By Liz Pringi on 20/10/2015
Foreword:
   Google Analytics is a great tool to see where people are browsing on your site, to monitor traffic, and possibly some other perks I'm unaware of.  ;)  So it's important to make sure it still works when you're upgrading the Google Analytics Tracking ID and updating the Google Analytics module, or just updating the module.
   Why would you want to do that?  Well: The 1.x branch of the Google Analytics module is now no longer supported, so if you want security updates you'll have to update to the 2.x branch (pretty straight-forward).
   If you're reading this post, you're likely ...
By Matt Parker on 03/08/2015
"Software testing" is a term used to refer to a variety of methods, tools, and practices for verifying that a software application works, at many different levels.

All of us in the web development industry do some sort of software testing (even if the testing we do is manual and ad hoc, e.g.: refreshing a webpage after making a change to ensure the code you just wrote works). In this blog post, I will attempt to discuss why you might want to move away from ad hoc testing to more-formal testing, try to dispel some myths about formal testing, and give a high-level overview of the different...
By Matt Parker on 16/07/2015
This post is a follow-up to last week's post, Conforming to coding standards with linters.

As we learned last week, linters are tools that you can use to check if a file contains any syntax errors, and/or whether it conforms to coding standards. This blog post discusses how to ensure that linters get run automatically when you make a commit.

If you find a better process, please blog about it and post a link in the comments!

This tutorial assumes:


You write or modify code,
You have linters to run on your code, and,
You use Git to manage your code.



Git hooks

Git has a way to fire off...
By Matt Parker on 15/07/2015
A clothesdryer with a laundry basket sitting atop it.
At the the DrupalNorth code sprint, I spent some time chatting about code linters, and how to use them to ensure your code conforms to coding standards. So, I thought I'd share the process that works for me.

If you find a better process, please blog about it and post a link in the comments!

This tutorial assumes:


You write or modify code in a language like PHP, JavaScript, CSS, Bash, etc.



What is a linter?

Simply put, a linter is a static analysis tool that you can run to ensure that your code is free from syntax and/or style errors.

Types of linters

To help me prioritize fixing...
By Matt Parker on 27/05/2015
I've often been asked how I generate both patches and interdiffs at the same time, because the instructions on drupal.org currently detail the two processes separately, and different documentation pages give different instructions.

So, I thought I'd share the process that works for me, providing real-world examples from an issue that I've worked on.

If you find a better process, please blog about it and post a link in the comments!

This tutorial assumes that:


You know what patchfiles are,
You know how to use the command-line (the instructions should work in both *NIX and Windows), and,...
By Xavier Landreville on 08/05/2015
Compared to languages such as Ruby or Python, PHP lacks a good REPL. REPL stands for read-eval-print loop, and no, php -a doesn't count. A good REPL will, for one, Print the result of each operation, which the standard CLI SAPI doesn't do (and it had trouble with the Eval part until recently). What the php -a client is, however, is an interactive scripting environement. You can type code, statements, as if you were within a php script, and they'll be evaluate the same way.
Enter boris. It is a quick, simple, tiny, powerful REPL for php, that will not die. The way boris works is to fork itself...
By Xavier Landreville on 27/04/2015
MailCatcher Logo
Most developers that have worked on web applications or websites have had to implement email sending functionality. Emails are extremely useful, as it allows your application to reach its users, even when they haven't visited it in a while, or to let them know that something important has happened. Unfortunately, testing email delivery is, or was, a harder problem to solve.
Now that professional Drupal shops are increasingly using multiple environments (dev, staging, live, etc.), it is important to have facilties to test email delivery. In the past, the recommended method was add to code that...
By Xavier Landreville on 13/02/2015
This is the first part in a series of system administration and management posts.
It used to be that if you wanted to run your own SCM system or VCS, you needed years of experience and a grey beard. However much has changed in the past few years.
We at OpenConcept switched from bare Git to GitLab about a year ago. The driving factor behind our change was to simplify the management of repositories and give our clients the option to gain direct access to them. We also picked up a bunch of useful functionality at the same time; things like pull requests, issue links, and teams.
If you don’t know...