David Walsh Blog

  • By

    Convert HTML to Markdown

    One of my biggest mistakes with this blog was not finding a WordPress plugin that would allow me to write my posts with markdown; to this day I still need to write posts in "Visual" mode and then manually convert the post to HTML for "Text"...

  • By
    Show FPS for Steam Games

    There's nothing more frustrating to a top gamer (outside of bugs in a game) than dropped frames in a video game.  If you're playing a competitive multiplayer game like PUBG or Fortnite, where up to 100 people are simultaneously competing, dropped frames can be the difference...

  • By
    Uppy File Uploading

    One of the big tasks I was charged with at my first job was setting up a system by which any customer or potential customer (aka anonymous user) could upload PDF and image files. I had loads of constraints to deal with: browser support...

  • By
    console.timeLog

    I work on a really complex debugger at Mozilla but, and don't tell my colleagues, I sometimes enjoy simply using console.log and other console commands to get some simple output.  I know, I know, but hey -- whatever gets the job done.  A few years ago I...

  • By
    Whatâs Next for Hybrid App Developers?

    The story of hybrid application development is a never-ending one. Each framework has to continuously strive and innovate to remain relevant, and the discussion of which framework to use is a question often asked. Most hybrid applications are built using a combination of HTML, CSS, and...

  • By
    Script & Style Show: Episode 11: Ionic Framework with Max Lynch

    In this episode:  David blames his wife for getting sick and missing last week's show, Todd's got a new Jeep, and David then blames his wife for not letting him have a Jeep.  Oh, and Max Lynch of Ionic Framework fame stops by to talk about...

  • By
    OpenRates Currency API

    Creating your own APIs can be a total nightmare: worrying about uptime, load balancing, data accuracy, caching, and all of the other risks would keep me up at night.  And if your API relates to money in any way?  If you get that wrong you...

  • By
    How to Delete Untracked Files in a Mercurial Repository

    Working around Firefox at Mozilla means that you need to get acquainted with mercurial, the version control system that rivals git and svn.  Like any tool, hg (mercurial) can be difficult until you're well versed with it.  And if you hg import a URL that doesn't match...

  • By
    Script & Style Show: Episode 10: Dojo

    In this episode: David and Todd welcome Dojo and JavaScript legend Dylan Schiemann and TypeScript and Dojo 2 superhero Nick Nisi.  We cover the early days of Dojo, the road to 2.0, and what's in Dojo 2.0 and beyond.  Enjoy!

  • By
    Regain Disk Space from Homebrew

    One of my favorite utilities is Homebrew, the shell utility for installing and upgrading other utilities -- it's a lazy developer's dream.  Dreams can easily turn to nightmares, however, and I recently learned that Homebrew caches older versions of installed packages, leading to loads of...

Popular Features

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

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