ding!

By  on  

I've been working with beefy virtual machines, docker containers, and build processes lately.  Believe it or not, working on projects aimed at making Mozilla developers more productive can mean executing code that can take anywhere from a minute to an hour, which in itself can hit how productive I can be.  For the longer tasks, I often get away from my desk, make a cup of coffee, and check in to see how the rest of the Walsh clan is doing.

When I walk away, however, it would be nice to know when the task is done, so I can jet back to my desk and get back to work.  My awesome Mozilla colleague Byron "glob" Jones recently showed me his script for task completion notification and I forced him to put it up on GitHub so you all can get it too;  it's called ding!

Once you have ding, you can do cools stuff like:

# ding somecommand
ding docker-machine start default
ding ./start-local-environment
ding ./refresh-environment

If the task completes successfully, you'll hear a positive sound; if the command fails, you'll hear a more negative sound -- a simple, yet useful and meaningful detail.

There's not much to explain except that ding is awesome and should check it out!

Recent Features

  • By
    Animated 3D Flipping Menu with CSS

    CSS animations aren't just for basic fades or sliding elements anymore -- CSS animations are capable of much more.  I've showed you how you can create an exploding logo (applied with JavaScript, but all animation is CSS), an animated Photo Stack, a sweet...

  • By
    CSS @supports

    Feature detection via JavaScript is a client side best practice and for all the right reasons, but unfortunately that same functionality hasn't been available within CSS.  What we end up doing is repeating the same properties multiple times with each browser prefix.  Yuck.  Another thing we...

Incredible Demos

  • By
    Introducing MooTools ElementSpy

    One part of MooTools I love is the ease of implementing events within classes. Just add Events to your Implements array and you can fire events anywhere you want -- these events are extremely helpful. ScrollSpy and many other popular MooTools plugins would...

  • By
    CSS Fixed Positioning

    When you want to keep an element in the same spot in the viewport no matter where on the page the user is, CSS's fixed-positioning functionality is what you need. The CSS Above we set our element 2% from both the top and right hand side of the...

Discussion

  1. I wonder if an even better solution would be to use macOS’s “say” command since this is macOS specific script and “say” is always available. That way you wouldn’t have the requirement of keeping those two .mp3 files in the directory as the script.

    It’d be awesome if he made this brew installable as well :)

  2. Scott Rippey

    What a great idea! I’ve been using the say command as an audible indicator when my Docker builds finish, but this is way more convenient, and even reports errors!
    So here’s an alternative, which I put in my .bash_profile, and has no dependencies (other than macOS):

    ding() {
    	EXIT_CODE=$?
    	if [ $# -gt 0 ]; then
    		time $@
    		EXIT_CODE=$?
    	fi
    	if [ $EXIT_CODE = 0 ]; then
    		say Hooray
    	else
    		say We\'ve had a problem
    	fi
    }
    
    

Wrap your code in <pre class="{language}"></pre> tags, link to a GitHub gist, JSFiddle fiddle, or CodePen pen to embed!