David Walsh Blog

  • By

    8 Digit Hex Colors

    One of the most requested capabilities in my early days of web development was the ability to set opacity on elements and even PNG images without the need for browser-specific CSS or hacks.  Eventually we got native opacity support and even enjoyed rgba(), the ability...

  • By
    Script & Style Show: Episode 15: CSP with Scott Helme

    In this episode:  Todd dials in from a poppin' KCDC while David dials in with a massive headache.  Scott Helme dials in from lovely Manchester to discuss web security, specifically the criminally underused CSP API.  Join us to learn what CSP is, why it's important, how...

  • By
    Search Git Commits Between Dates

    One of my weaknesses as a developer is relying on UIs to provide me the data I need.  It's not a fatal weakness but it does hamper me a bit.  One prime example is relying on GitHub's interface to review changes; git's command line provides the...

  • By
    How to Hide Information in Images

    If you've followed this blog, you know that I'm obsessed with figuring out every way to interact with, abuse, and convert different types of media.  Whether it's images, video, or audio, if something can be changed or exploited, I want to figure out how to do...

  • By
    Script & Style Show: Episode 14: CSS filters and mix-blend-mode with Tim Thomas

    In this week's episode:  David uses City Slickers to illustrate his sorrow over turning 35 years old while Todd tries to talk him down.  Tim Thomas stops by to demo some really awesome animated effects you can do with CSS' mix-blend-mode and filter.  The demos are outstanding...

  • By
    Script & Style Show: Episode 13: Decentralized Identity with Daniel Buchner

    In this episode:  David and Todd return from travels to San Francisco, Oslo, and Iceland, Todd reveals he's a new (dog) father, and they welcome guest Daniel Buchner, a Senior PM for Microsoft's Decentralized Identity team.  Daniel shares his knowledge about blockchain and crypto, then moves...

  • By
    Fix Flow Node Issue “property querySelector of unknown”

    Flow, the static type checker used in many React projects, feels like a gift and a curse at times; a gift in that it identifies weaknesses in your code, and a curse that sometimes you feel like you're needlessly adjusting your code to satisfy Flow. ...

  • By
    Count Frames in an Animated GIF

    The animated GIF always makes me chuckle; on one hand they seem like a relic of the "old web", on the other hand they aren't going anywhere and their meme-like presence seem to only make them more popular.  If you browse through my media blog...

  • By
    Easy Document Signing with the Eversign Chrome Extension

    A while back I wrote about Eversign, an awesome service that allows you and your clients or partners to digitally sign documents online.  If you've recently bought a house or did any other large purchases or agreements, you know how important the ability to reliably...

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

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