David Walsh Blog

  • Convert PSD to PNG with Node.js

    Automating and manipulating media is a fascination of mine, partly because I don't understand the magic behind it and partly because the idea of turning one thing into another is fun and useful.  That latest media tool that has piqued my interest is a JavaScript tool called psd.js. psd.js...

  • Offline Recipes for Service Workers

    I've been working on a few awesome projects within the last two months, one of which is the ServiceWorker Cookbook.  The ServiceWorker Cookbook contains many examples of ServiceWorker usage, categorized by difficulty and use case.  You can download the source code from GitHub and we'd love contributions! I wrote a blog...

  • Telerik Free Webinar:  Build Next Generation Mobile Apps

    Creating the best user experience for your mobile apps is critical to their success. But time constraints and limited resources sometimes force you to compromise. It shouldn't have to be a tradeoff. Telerik Platform 2.0 changes the game in mobile app development, enabling you...

  • DOMDocument and UTF-8 Problem

    A few weeks back I shared how I used PHP DOMDocument to reliably update all image URLs from standard HTTP to HTTPS.  DOMDocument made a difficult problem seem incredibly easy ... but with one side-effect that it took me a while to spot:  UTF-8 characters were being...

  • Grav: Building Fast and Flexible Websites

    Grav is an open source flat-file CMS, that requires no database and that is built to be modular, easy to use, and incredibly fast. Its database-free structure offers users the advantage of simple setup, straightforward customization, and rapid deployment to any server running php 5.4 or...

  • Apple TV 4 vs Roku 4

    Almost three years ago I wrote a post about how I "cut the cord" and went to exclusively online TV content providers.  I bought a Roku and Apple TV, both "generation 2", and reviewed my likes and dislikes about both.  Much has happened in this...

  • A Closer Look at Slides Framework

    Have you seen the new Slides Framework by Designmodo? Slides was created using HTML, CSS and jQuery. Most website building tools are loaded with features, and it often takes significant amounts of time and effort to understand and apply them. If what you need is...

  • Awesome REST Backend for Javascript Apps Using DreamFactory

    My first impressions of using REST APIs from the front-end was:  awesome simplicity in idea, complete pain in the ass to set up on the.  I told myself "I always want to use REST for service CRUD but I never want to deal with maintaining it."  I mean...

  • Adding ESLint with gulp.js

    I've noticed that I am a loose coder on my personal projects but want some level of decorum on Mozilla and other open source projects.  The more developers you have contributing to a project, the tighter the ship you must keep.  The easiest way to do that is...

  • Best Web Apps and Work Hacks for Web Design Teams

    One way some project managers seek to improve design team productivity is to require team members to work harder or for longer hours. Taking this approach however will almost always have a damaging effect on overall team productivity in the long run. The more forward-thinking project...

Track.js Error Reporting

Popular Features

  • JavaScript Promise API

    While synchronous code is easier to follow and debug, async is generally better for performance and flexibility. Why "hold up the show" when you can trigger numerous requests at once and then handle them when each is ready?  Promises are becoming a big part of the JavaScript world...

  • Chris Coyier’s Favorite CodePen Demos II

    Hey everyone! Before we get started, I just want to say it's damn hard to pick this few favorites on CodePen. Not because, as a co-founder of CodePen, I feel like a dad picking which kid he likes best (RUDE). But because there is just so...

  • 7 Essential JavaScript Functions

    I remember the early days of JavaScript where you needed a simple function for just about everything because the browser vendors implemented features differently, and not just edge features, basic features, like addEventListener and attachEvent.  Times have changed but there are still a few functions each developer should...

  • I’m an Impostor

    This is the hardest thing I've ever had to write, much less admit to myself.  I've written resignation letters from jobs I've loved, I've ended relationships, I've failed at a host of tasks, and let myself down in my life.  All of those feelings were very...

  • fetch API

    One of the worst kept secrets about AJAX on the web is that the underlying API for it, XMLHttpRequest, wasn't really made for what we've been using it for.  We've done well to create elegant APIs around XHR but we know we can do better.  Our effort to...