Software Engineer. Freelance Technology Writer. Editor of SitePoint's JavaScript Channel.

Colin's articles

  1. Back to Basics: Array Extras

    Arrays are a fundamental data structure in many programming languages, and JavaScript is no exception. To abstract away many of the details of working with arrays, JavaScript provides a collection of functions known as array extras. This article describes the various array extras and their uses.

  2. Fun with JavaScript Numbers

    Data types are an essential component of every programming language, and numbers are perhaps the most important of all data types. After all, computers are really just expensive calculators. Like any worthwhile programming language, JavaScript supports numerical data. However, like many other aspects of JavaScript, numbers have several intricacies which can bite you if you’re […]

  3. Back to Basics: JavaScript Hoisting

    Variable declarations are one of the most basic aspects of any programming language. However, JavaScript has a little quirk, known as hoisting, which can turn an innocent looking declaration into a subtle bug. This article explains what hoisting is, and how you can avoid being burned by it.

  4. Introducing the Geeksphone by Mozilla

    Mozilla has been hard at work on their new operating system, Firefox OS. This week they took another step towards legitimacy with the announcement of developer preview devices – known as the Geeksphone. This article introduces Firefox OS and the Geeksphone to the JSPro audience.

  5. The Return of the jQuery Plugin Registry

    For all of you jQuery plugin developers out there, we have some exciting news to announce. The new jQuery Plugin Registry site recently went live. This new site replaces the old plugin registry, and will “put an emphasis on remedying a number of the issues” that plagued the old site. The site has a very […]

  6. JavaScript and the Wii U Browser

    With all the talk of desktop, tablet, and mobile, there is another type of browser which tends to slip through the cracks – console browsers. In late 2012, Nintendo released it’s Wii U console, an eighth generation console which introduces a GamePad that features a second screen experience. The Wii U also features a NetFront […]

  7. Back to Basics: JavaScript Object Syntax

    Objects are a cornerstone of the JavaScript language. Many built in data types such as errors, regular expressions, and functions are represented as objects in JavaScript. In order to be a successful JavaScript developer, you must have a firm grasp on how objects work. This article will teach you the basics of creating and manipulating […]

  8. Implementing Push Technology Using Server-Sent Events

    Making Ajax calls using the XmlHttpRequest object is a well established technique for generating dynamic server requests. However, Ajax does not allow the server to directly initiate data transfers to the client – a technique referred to as push technology. That’s where the server-sent events API comes into the picture. Specializing in push technology, server-sent […]

  9. The Buzz About the Vibration API

    As the mobile Web continues to grow, APIs are being designed which specifically target mobile devices. A prime example is the W3C’s Vibration API, which gives developers access to a device’s vibration hardware. This has obvious implications for games, as it can provide a more immersive experience. This article will teach you how to add […]

  10. The Basics of jQuery

    When it comes to client side libraries, jQuery clearly takes the cake. Recent research indicates that jQuery is used on half of all Web sites. There is a good explanation for jQuery’s popularity – it’s extremely simple to use. This article introduces the key concepts behind jQuery, and will get the absolute beginner up and […]

  11. Introducing the Battery Status API

    Mobile devices represent an increasingly large segment of all Web traffic. This traffic is so substantial, that APIs and design practices have been created specifically to cater to mobile devices. An example of this is the W3C’s Battery Status API, which allows an application to inspect the state of the device’s battery. This article explores […]

  12. Headless WebKit and PhantomJS

    If you’re reading this article, you most likely know what a browser is. Now take away the GUI, and you have what’s called a headless browser. Headless browsers can do all of the same things that normal browsers do, but faster. They’re great for automating and testing web pages programmatically. There are a number of […]

  13. Web Scraping in Node.js

    Web scrapers are pieces of software which programmatically visit web pages and extract data from them. Web scraping is a bit of a controversial topic due to issues of content duplication. Instead, most web site owners prefer that their data be accessed by publicly available APIs. Unfortunately, many sites provide lackluster APIs, or none at […]

  14. Making HTTP Requests in Node.js

    In previous articles, I’ve focused on creating a Node.js server to handle HTTP requests. This article looks at the problem in reverse, by showing you how to make HTTP requests from your Node.js applications. You may be asking yourself why you would want to do that. Two applications come to mind right away – web […]

  15. Accessing the File System in Node.js

    For years, JavaScript has had very limited access to the file system. Of course, for most of its life, JavaScript lived in the browser. For a web scripting language, accessing the file system was considered a major security risk. Front end developers have been forced to make due with cookies, web storage, ActiveX, Flash, and […]

  16. Cloud Deployment of Node.js Applications with Nodejitsu

    SitePoint is releasing its new book, Jump Start Node.js, tomorrow. In celebration of the book launch, JSPro is bringing you a special Node.js article today. Today’s article will teach you how to deploy your Node.js applications in the cloud using Nodejitsu.

  17. HTTP Authentication in Node.js

    Last week, in Creating a HTTP Server in Node.js, I covered the basics of HTTP in Node.js. Today’s article will show you how to password protect your Node.js site using HTTP authentication. We’ll start by looking at basic access authentication, and then move on to the more secure digest access authentication.

  18. Creating a HTTP Server in Node.js

    In my last article, I introduced the most basic Node.js program possible. While Hello World programs are nice, Node.js is more commonly known for creating highly scalable server applications. This article introduces a simple HTTP server built atop Node.js.

  19. Navigation Timing API: How to Profile Page Loads Efficiently

    Page load time is one of the most important aspects of user experience on the web. When pages load too slowly, users quickly become frustrated and take their business elsewhere. Unfortunately, troubleshooting a slow page load is not typically a straightforward process because many factors contribute to the overall time. For example, a page’s load […]

  20. An Introduction to Node.js

    JavaScript has long been the de facto standard for client-side web development. While nearly all client code is written in JavaScript, server-side development is a mashup of PHP, Java, and numerous other technologies. Life as a web developer would be much simpler if a single language was used everywhere. Because JavaScript dominates in the browser, […]

  21. Profiling Page Loads with the Navigation Timing API

    Page load time is one of the most important aspects of user experience on the web. When pages load too slowly, users quickly become frustrated and take their business elsewhere. Unfortunately, troubleshooting a slow page load is not typically a straightforward process because many factors contribute to the overall time. For example, a page’s load […]