David Walsh Tutorials
![Create Short Preview from Video]()
Create Short Preview from Video
Displaying a preview image before loading a video is common practice with web media these days; oftentimes that image preview is the video's first frame or an important frame from the video. If you've visited an adult site recently (ahem), you will have noticed that not only do you get a preview image...
![JavaScript Deep Merge]()
JavaScript Deep Merge
I recently shared how you can merge object properties with the spread operator but this method has one big limitation: the spread operator merge isn't a "deep" merge, meaning merges are recursive. Moreover nested object properties aren't merged -- the last value specified in the merge replaces the last, even when there are...
![Custom Neutrino Linting]()
Custom Neutrino Linting
Last week my friend Eli Perelman shared Modern JavaScript Apps with Neutrino, an awesome new Node.js tool for creating amazing apps with minimal fuss. No need to learn webpack, scour babel plugins, or search for what exactly is required to get a React.js app up and running -- just install...
![Normalize a Directory of mp3s]()
Normalize a Directory of mp3s
Back in the early days of Napster, Kazaa, eMule, and other file sharing networks, I would download as many apps, movies, game, and movies as possible. My illegal downloading was out of control; I would get DMCA notices from my ISP for apps and games I had...
![Convert String to DOM Nodes]()
Convert String to DOM Nodes
It wasn't too long ago that browsers were mostly stagnant when it came to implementing new APIs and features, leading to the rise of MooTools (FTW), jQuery, Dojo Toolkit, Prototype, and likewise JavaScript toolkits. Then we started doing more client side rendering and were forced...
![Unique Array Values]()
Unique Array Values
When you look at any programming language, you see missing features that you find puzzling because the use case seems so common. One such case is retrieving unique values from an array with JavaScript. Years ago I mentioned an easy way of unique value management using objects instead...
![Cloudinary React Components]()
Cloudinary React Components
I've been experimenting a lot with both React and Cloudinary over the past six months and it's been a blast -- I'm learning a ton while also recovering the ambition and thirst I had as a young developer. React has been a revelation: an advanced JavaScript...
![Promise.all for Rejections and Resolves]()
Promise.all for Rejections and Resolves
Promises have been an incredible addition to JavaScript; they save us callback hell, make coding async more maintainable, and and allow us to keep track of multiple async processes at a time.
Promise.allcomes to mind, allowing us to react when multiple promises have been resolved. UnfortunatelyPromise.allonly resolves when...![Handpicked Resources for 2017]()
Handpicked Resources for 2017
Let’s start 2017 with a great showcase of handpicked web resources that will make our projects easier. We’ve worked a couple of months to identify which are the best tools worth mentioning. Developers, web designers and individuals talked with us and they share their experience and...
![Interview with O’Reilly Strategic Content Director: Rachel Roumeliotis]()
Interview with O’Reilly Strategic Content Director: Rachel Roumeliotis
O'Reilly Media is, without a doubt, the premier publisher of educational books in our industry. When you see a tech book with an illustrated animal on the cover, it's a safe bet that book is the highest in content quality. The same can be said about...







