A guide to using Node.js for developing command line interface (CLI) applications. In it, I create a utility for setting up Git repositories.
In this article I take a fictional driving instructor's website and modernize it by integrating real-time availability checking, booking and scheduling via the third-party Acuity Scheduling service and using Vue.js.
An introduction to web application monitoring - what should you monitor? What do you need to consider? How do you interpet the results?
Optical Character Recognition (OCR) is much easier to implement in a PHP application than you might think. In this in-depth tutorial, I show how you can use the open-source Tesseract library to do just that.
An in-depth tutorial on using the open-source computer imaging library OpenCV to build a face detection application in Node.js.
In the second of a two-part series on TransloadIt, a file-processing service, I show how you can build a user avatar component using Node.js.
In the first of a two-part series on TransloadIt, a file-processing service, I look at some of the key concepts.
Continuing my look at RAML, the RESTful API Modeling Language, I introduce a couple of ways in which you can incorporate it into your API testing. Not only can it be used to check that API responses are as expected, but it can also be used to mock them to assist your testing processes.
RAML is a way of documenting RESTful API's. A RAML document can be used to automatically generate API documentation, can be used by way of a specification or it can even be used to test against. In this article I take a look at it.
In this tutorial I look at how you can use Grunt in conjunction with Amazon's S3 service for easy website deployment.
A follow-up piece to my SOLR series, looking at Geospatial search.
A look at some of the approaches you can take to provide embeddable content - or badges - for third-party websites.
Slate is a Jekyll-like static site generator specifically designed for creating web-based API documentation. It offers syntax-highlighting, in-page search and language-based tabs out-of-the-box. This article takes an in-depth look at it, how to use it and how to customise it.
In this second and final part of a series looking at FigDice, I go into more detail about the idea of data-feeds, adding a simple blog to the example website from Part One. I also look at translating content.
FigDice is a slightly different kind of templating engine for PHP. In this two-part series I take a look at it, and build a simple site from scratch.
Whilst Composer plays nicely with Packagist, sooner or later you'll probably need to keep some of your packages private. Gemfury is a SaaS solution for just that.
Sending emails is pretty straightforward; building HTML emails and managing templates, less so. Fortunately there are a number of tools to help automate the process.
In this article for Sitepoint I take a look at Piwik, which is a self-hosted analytics solution. I describe how to install it and perform basic setup, and assess some of its pros and cons, particularly in comparison to the ubiquitous Google Analytics.
My Apache SOLR series concludes with an overview of some of the more advanced features including search-term highlighting, adding autocomplete, configuring stop-words & synonyms and adding additional cores.
Third of a four-part series on Apache's SOLR, along with Solarium - a PHP client. Here I look at the implementation of a sample application, allowing people to search a database of movies.
In this second of a four-part series on Apache's SOLR I look at installing Solarium, populating the search index and building the front-end.
In the first of a four-part series I take a look at Apache's SOLR search along with Solarium, which is a PHP library for working with it.
In this article I look at JSON Web Tokens (JWT) and how they can be used to handle authentication in your APIs, or for rich web applications using technologies such as Backbone. On the server-side I'm using Node.js, although the principle could be applied to any language.
Kirby is a CMS written in PHP which stores everything in static files, with no need for a database. In this article I take a look at it.
Ladder enables developers to create and modify database tables using code, enabling you to add it to version control and track changes as you would your application code. In this article, I take a look at how to use it.
An introduction to Flysystem, a PHP library which provides developers with a layer of abstraction over file storage systems including standard local files, online services such as Dropbox and Cloud Files and remote storage mechanisms such as FTP.
A tutorial on building a live score widget for football matches, using web sockets and PHP's Ratchet library.
Building a subscription-based website or application with Laravel, using Recurly to process recurring payments. In this first part I look at setting up the application, configuring users and roles, and building an authentication system.
Using Iron Worker to process long-running or processor-intensive tasks in the cloud" using the Iron Worker service.
A tutorial on using Prowl to send ad-hoc push notifications. I include a practical example; extending Zend Framework's logging class to send critical errors direct to authorised mobile phones.
An introduction to using Facebook's Subscription API and real-time updates to subscribe to changes in user data, with a practical example which emails someone when they've been un-friended".
Using PHP (Slim framework) to manage and upload episodes
Creating a stock quote service which operates using SMS, using online telephony service Twilio.
An introduction to the Browser Capabilities Project (Browscap), and how to use it to do server-side device detection for mobile theme switching, guessing" the user's operating system
An introduction to Where On Earth Identifiers (WOEID's), and using the Yahoo! Placemaker service to identify where someone is geographically by place name, rather than simply using latitude and longitude.
An introduction to geolocation and using the Geonames service to take geographcal co-ordinates, and then try and match them to real-life places.