David Walsh Blog

  • By

    Adding Search to Your Site with JavaScript

    Static website generators like Gatsby and Jekyll are popular because they allow the creation of complex, templated pages that can be hosted anywhere. But the awesome simplicity of website generators is also limiting. Search is particularly hard. How do you allow users to search...

  • By
    I Don’t Hate Arrow Functions

    TL;DRArrow functions are fine for certain usages, but they have so many variations that they need to be carefully controlled to not break down the readability of the code.While arrow functions clearly have a ubiquitous community consensus (though not unanimous support!), it turns out there's a...

  • By
    Write Your First Service Worker in 5 Minutes

    What is a service worker?A service worker is a little file that will allow you to cache files and other assets on a user's machine. How is this different from server-side caching? Because the assets are stored on a user's machine, rather than a server...

  • By
    How to Set Commit Author

    I've worn dozens of hats on a dozen different teams during my time at Mozilla, but none has been as rewarding and challenging as community management. Whether it's mentoring students, welcoming new contributors, or reviewing pull requests, there's always so much to be done. There's also...

  • By
    Get File MIME Type from Command Line

    I've gotten skilled at shell scripting over the years. I love a good GUI but knowing how to automate makes you a much more powerful engineer. Much of my scripting requires recursing over directories and processing a file if it meets a given criteria, which...

  • By
    List USB Devices from Command Line

    I was recently creating a Recalbox with my 5 year old son and it was an awesome experience; I saw the excitement and curiosity in his eyes while helping him put together a video game machine. We added NES, SNES, and Nintendo 64 games to...

  • By
    JavaScript Proxy

    I've always loved the flexibility of Objects and prototypes in JavaScript, but for a long time, I felt that a level of dynamism was lacking. JavaScript eventually added get and set methods for object properties, which was an awesome step, but there was still room...

  • By
    Chris Coyier’s Favorite CodePen Demos IV

    Did you know you can triple-heart things on CodePen? We’ve had that little not-so-hidden feature forever. You can click that little heart button on any Pen (or Project, Collection, or Post) on CodePen to show the creator a little love, but you can click it again...

  • By
    Awesome Analytics with Keen.io

    As a young developer, I would often make decisions based on what I considered to be common sense or what I would envision appealed to users. What a mistake. As I've become more experienced as a developer and a businessman, I've realized that analytics are...

  • By
    Building a Landing Page Fast Using the Visual Composer Website Builder

    What if it were possible to build a landing page from top to bottom, including a header and a footer, and do so without any need for writing code?And even if it was possible, could you reasonably expect to do so as easily and quickly as...

Popular Features

  • By
    Welcome to My New Office

    My first professional web development was at a small print shop where I sat in a windowless cubical all day. I suffered that boxed in environment for almost five years before I was able to find a remote job where I worked from home. The first...

  • By
    How to Create a RetroPie on Raspberry Pi – Graphical Guide

    Today we get to play amazing games on our super powered game consoles, PCs, VR headsets, and even mobile devices.  While I enjoy playing new games these days, I do long for the retro gaming systems I had when I was a kid: the original Nintendo...

  • By
    Conquering Impostor Syndrome

    Two years ago I documented my struggles with Imposter Syndrome and the response was immense.  I received messages of support and commiseration from new web developers, veteran engineers, and even persons of all experience levels in other professions.  I've even caught myself reading the post...

  • By
    Being a Dev Dad

    I get asked loads of questions every day but I'm always surprised that they're rarely questions about code or even tech -- many of the questions I get are more about non-dev stuff like what my office is like, what software I use, and oftentimes...

  • By
    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...

  • By
    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...

  • By
    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...