David Walsh Blog

  • By

    Fix git After High Sierra Upgrade

    Every major operating system upgrade is a grand adventure.  No matter the vendor or how vanilla you keep your system:  stuff is going to break.  This was very much the case with git when I upgraded my MacBook Pro to High Sierra. After the upgrade I tried...

  • By
    Convert JPG, PNG, and Animated GIF to WEBP

    New image formats like WEP and MOZJPEG will be a major boost to load time on the web.  The majority of page load and render time is usually attributed to unoptimized images, so these new formats will make both mobile and desktop load times faster.  I've...

  • By
    Create Context Menu Items in Mac Finder

    As much as I like exercising my command line skills, for many tasks I'd rather click a time or two.  The problem is that yarn install, brew install, and other package managers don't come with UI extending capabilities...so knowledgable people like us need to find a...

  • By
    How to checksum

    Many of us see the term checksum and checksum outputs frequently but don't really take the time to run them -- oftentimes we simply trust the file we've downloaded is in working order and from the original source.  This past weekend when I was attempting to...

  • By
    Patch Super Dram World

    My recent dive into retro gaming has opened my eyes to how much time and effort still goes into playing console games that are as old as I am.  The basic challenge has gone out of these games, understandably, so players have improvised new goals like...

  • By
    Show Hidden Files in Mac Finder

    Setting up a new machine is a great time for me to write blog posts about configuration settings that I'd forgotten to document.  Much of the time I refer back to this post to figure out how I did things like Add Dock Separators and...

  • By
    Play Wii Games on Mac

    I was one of those guys that bought the Wii off of eBay shortly after its release at a scalper's ransom.  For months my roommates and I would drink beer, talk trash, and play Wii Sports bowling for hours on end.  Of course the Wii never...

  • By
    Play GameCube Games on Mac or PC

    My current obsession with retro gaming has brought me to creating a RetroPie on Raspberry Pi, a Recalbox on Raspberry Pi, playing retro games on Mac with OpenEmu, and exploring how to play Sony Playstation games within OpenEmu.  My newest adventure has...

  • By
    Node EADDRINUSE (Address Already in Use) Error

    Every once in a while my MacBook Pro freaks out and a process goes rogue.  This oftentimes happens when I'm working on the excellent debugger.html project; I attempt to start the server side of the debugger and suddenly I'm hit with an error that resembles the...

  • By
    How to Play Sony Playstation Games on OpenEmu

    I've been having the time of my life playing retro Nintendo64, NES, SNES, and Game Gear games since I discovered OpenEmu.  I bought a few USB Nintendo 64 controllers and I'm like a kid again, even sharing that joy with my two young children.  Using...

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