David Walsh Blog

  • By

    Script & Style Show: Episode 28: âGet Off My Lawnâ, and Other Software Stories with Eric Brandes

    In this episode:  Todd and David kick things off bantering about cell phones, Android rot, and the good old days of Windows XP and piracy.  Todd's colleague Eric Brandes gets us back on track with a discussion about trusting proven technologies, not chasing the latest fads...

  • By
    Script & Style Show: Episode 26: Web Games with ExcaliburJS with Erik Onarheim and Kamran Ayub

    In this episode:  Todd returns from a vacation to Disney and gives David some tips about surviving a family visit to Orlando's most famous theme parks.  Erik Onarheim and Kamran Ayub join the guys to discuss HTML5 games, the Excalibur JavaScript HTML5 game library, the amazing...

  • By
    Object.fromEntries

    The Object object has been buffed with useful methods over the past few years.  Object.keys, Object.values, Object.freeze, and Object.assign all address frequently desired functionality.  One of the new Object methods is fromEntries, which accepts a Map or map-like array nesting and converts it to a useful object literal! Convert Map...

  • By
    Download a YouTube Channel’s Videos

    YouTube is an endless source of entertainment, be it stuff you're proud to share you like or stuff you would rather others not know about (see: David's history of watching old WWE Royal Rumbles).  I watch a lot of YouTube in hotels and on flights when...

  • By
    Turn Bluetooth On and Off from Command Line on macOS

    Bluetooth has been a revelation in wireless technology: wireless mice, headphones, streaming devices, and a variety of home and office environments.  It goes without saying that wireless peripherals are so much easier to manage than wired counterparts, especially mice, that I usually have my MacBook's bluetooth...

  • By
    Get Up and Win

    Down on my hands and knees, I crawl around, bleeding out.  I'm resigned to my fate.  A kind stranger, a new friend, rushes over to me and kneels to help, reviving me at a time that didn't require it.  Just as I'm revived, the kind stranger...

  • By
    Lessons in Failure: Removing the Old Debugger from Firefox

    Joining the Firefox DevTools team was a dream come true for me.  I shared why in the first episode of the Script & Style show but the quick summary is that I grew up loving Firefox (even before it was called "Firefox") because Mozilla cared...

  • By
    Mercurial: Mass Add and Remove All Files

    While I much prefer git and the GitHub workflow, Firefox's codebase (mozilla-central) is store in a mercurial repository.  There are tools that wrap mercurial so you can use a git-like interface, like git-cinnabar, but my philosophy is to learn the root tool so that I...

  • By
    Change Mac Brightness from Command Line

    Earlier this week I posted about how you can modify your Mac's volume from command line.  Little command line scripts make me smile because I spend so much of my day in command line, and automation can be the key to productivity.  I next thought about...

  • By
    Find and Change Default App for File Type from Command Line

    There are few things more frustrating to any computer user than files opening in an unwanted application.  Sure you can use the Open menu item in the desired application but we all just want to double-click a file and see it open in the application we expect. ...

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