hello.js

var please = require('share');
console.log('thank you');

Wednesday, 20 December, 2017 UTC

Watch for Object Changes with JavaScript

Watch for Object Changes with JavaScript

Watching for changes to an object’s property has always been a much sought after task; many shims have been used over the years to listen to object changes. These days we have better methods for listening to object changes: the Proxy API. Sindre Sorhos ... more


Monday, 18 December, 2017 UTC

Goals for 2018

Goals for 2018

Every turn of the year is a new opportunity to start over, set goals, and renew optimism that time can heal wounds and drive us to change and achieve. For me 2018 is my most important year in a long time; 2018 needs to serve as a turning point for this ... more


Thursday, 7 December, 2017 UTC

Dynamic Waveform Visualizations with wavesurfer.js

Dynamic Waveform Visualizations with wavesurfer.js

Waveform images are an awesome addition to boring audio widgets. They can be functional as well as aesthetically pleasing, allowing users to navigate audio visually. I recently found wavesurfer.js, an amazing waveform image utility that uses to Web Audio ... more


Thursday, 7 December, 2017 UTC

Faster PR Pulls with Git Aliases

Faster PR Pulls with Git Aliases

I love the traditional GitHub workflow of receive pull request, pull down pull request to test, and merge the pull request. GitHub makes the first and the third steps easy but pulling down pull requests from new contributors requires some boilerplate ... more


Monday, 4 December, 2017 UTC

Confessions of a Web Developer XVI

Confessions of a Web Developer XVI

It’s been quite a while since I’ve gotten a few things off of my chest and since I’m always full of peeves and annoyances I thought it was time to unleash: If I were just getting into front-end development, I’d be so lost. The norm these days seems to ... more


Wednesday, 29 November, 2017 UTC

Cloudinary Launches a Complete Video Solution

Cloudinary Launches a Complete Video Solution

Over the past year I’ve shown you how amazing Cloudinary is for media delivery, optimization, image filters and transformations, Vue and React; whatever the task, Cloudinary has you covered. Today I’m happy to share that Cloudinary has a massive new ... more


Friday, 24 November, 2017 UTC

Excellent Resources for Web Professionals (Sponsored)

Excellent Resources for Web Professionals (Sponsored)

All web professionals, including web designers and developers, are looking every moment for ways to get the projects done faster, to respect deadlines, to deliver excellent quality and finally to have happy customers. This showcase is about excellent ... more


Wednesday, 8 November, 2017 UTC

7 Ways to Stay Ahead, Solve Problems, and Learn New Skills

7 Ways to Stay Ahead, Solve Problems, and Learn New Skills

Having O’Reilly as a sponsor is a developer and blogger’s dream. Being backed by the industry leader is a great show of confidence, but more importantly, I get to share with people a service I really like. Today I’d like to share with you all of the ... more


Thursday, 26 October, 2017 UTC

Patch Super Dram World

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


Tuesday, 17 October, 2017 UTC

Node EADDRINUSE (Address Already in Use) Error

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


Tuesday, 10 October, 2017 UTC

Detect Supported Audio Formats with JavaScript

Detect Supported Audio Formats with JavaScript

As streaming becomes our main entertainment source and vendors fight to create the best video format, it’s going to be more and more important that we detect device and browser video support before posting videos on our websites. We think less about ... more


Monday, 9 October, 2017 UTC

Better Debugging with Conditional Breakpoints

Better Debugging with Conditional Breakpoints

I love conditional breakpoints. Really! They’re my favorite debugging tool. When I got started in web development, “debugging” for me meant creating a <pre id='log'></pre> and appending strings to its contents to act as a log. But once Firebug ... more


Tuesday, 3 October, 2017 UTC

Image and Video Conversion with Cloudinary

Image and Video Conversion with Cloudinary

I’ve always been fascinated with media formats and converting both images and video from one format to another. Media conversion allows us to play videos on devices or apps with picky media requirements and load optimized formats for faster download ... more


Wednesday, 20 September, 2017 UTC

Detect Supported Video Formats with JavaScript

Detect Supported Video Formats with JavaScript

Over the past few years we’ve been seeing new audio, video, and image formats take shape to challenge the legacy formats that we’ve used since the web’s inception. This is a great development as we have more processing power and better compression algorithms ... more


Tuesday, 19 September, 2017 UTC

Creating a Cloudinary Vue Component

Creating a Cloudinary Vue Component

While React.js has taken much of the attention during the latest wave of JavaScript frameworks, Vue.js has quietly become a favorite of many developers that find React overly complex and don’t want to deal with the webpack tooling. With Vue you can simply ... more


Monday, 18 September, 2017 UTC

Conquering Impostor Syndrome

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


Thursday, 14 September, 2017 UTC

Safari Learning Platform: Half Price. 48 Hours Only. (Sponsored)

Safari Learning Platform: Half Price. 48 Hours Only. (Sponsored)

For 48 hours only, get a full year of Safari membership for only $199—that’s a savings of $200. Get full, unlimited access to everything the Safari learning platform offers—and that’s a lot—live online training, learning paths, interactive tutorials, ... more


Monday, 11 September, 2017 UTC

Node.js Debugging

Node.js Debugging

Proper logging is of massive utility for web apps, both during development and after deployment. What can sometimes be difficult is organizing both the code and output of logging, i.e. knowing where each log message is coming from. I recently found debug ... more


Thursday, 7 September, 2017 UTC

Object.create(null)

Object.create(null)

One of the funnest parts of JavaScript, or any programming language really, is that there are loads of tiny tricks and quirks that make the language that much more interesting. I recently learned a nice fact about Object.create : using null as the only ... more


Thursday, 7 September, 2017 UTC

Node.js Port Scanner

Node.js Port Scanner

Node.js has become an incredible tool for creating services or utilities that act like a service. Usually it’s npm start , wait a moment, and you’ll see the utility provide an address and port; a good example being localhost:8000 . One thing that bugs ... more


Tuesday, 5 September, 2017 UTC

Observing Intersection Observers

Observing Intersection Observers

As developing for the web has matured and JavaScript engines have become faster, one area remains a significant bottleneck – rendering. It’s because of this that so many of the recent development efforts have been focused around rendering, with virtual ... more


Tuesday, 29 August, 2017 UTC

Create Zip Files with JavaScript

Create Zip Files with JavaScript

While we’re doing amazing things with JavaScript on the server side, it’s important not to take our eyes off of some of the great stuff happening on the client side. One such awesome project I recently discovered was JSZip: a JavaScript library that ... more


Wednesday, 23 August, 2017 UTC

async & await

async & await

JavaScript promises were a revelation in JavaScript, providing an alternative to the JavaScript callback hell we’d quickly found ourselves in. Promises also allowed us to introduce and better handle asynchronous tasks. While promises were an improvement ... more


Wednesday, 23 August, 2017 UTC

Getting Tired of Endless Client Revisions? 270+ Pre-Built Websites Are the Solution (Sponsored)

Getting Tired of Endless Client Revisions? 270+ Pre-Built Websites Are the Solution (Sponsored)

Website revisions are to be expected. They also tend to be few and are usually minor in nature. However, some clients never seem to be satisfied. Sometimes, they also have a problem explaining what they expect from you. On the other hand, your design ... more


Monday, 21 August, 2017 UTC

Thinking JavaScript

Thinking JavaScript

I was teaching a JavaScript workshop the other day and one of the attendees asked me a JS brain teaser during the lunch break that really got me thinking. His claim was that he ran across it accidentally, but I’m a bit skeptical; it might just have been ... more


Tuesday, 15 August, 2017 UTC

Detect WEBP Support with JavaScript

Detect WEBP Support with JavaScript

Image optimization is a huge part of improving front-end performance. We’ve traditionally used JPG/JPEG, GIF, and PNG images but Google and the Chrome team developed the WEBP format which crunches file size and optimizes rendering. If you go to a site ... more


Wednesday, 9 August, 2017 UTC

Fill an Array with Sequential Values

Fill an Array with Sequential Values

I’ve been contributing to Mozilla’s awesome DevTools debugger because, well, I want to give back to the Firefox Engineers and all the developers who have stayed loyal to Firefox. Having my hand in loads of Mozilla projects is really satisfying, especially ... more


Tuesday, 1 August, 2017 UTC

10 Excellent Image Tricks and Enhancements with Cloudinary

10 Excellent Image Tricks and Enhancements with Cloudinary

If you’ve read this blog over the past months, you’ll know that Cloudinary offers an amazing array of functionality, whether it be imagery, video, and even audio. I wanted to highlight ten of my favorite features and tricks when transforming your media ... more


Tuesday, 1 August, 2017 UTC

10 Years

10 Years

A full decade ago I was a rookie web developer at a small web shop in Madison, Wisconsin. When I left college, all I knew was CSS layouts and confirmation boxes. In short: I was as green as could be, much greener that kids coming out of college today. ... more


Friday, 14 July, 2017 UTC

Prevent Mobile Browser From Sleeping

Prevent Mobile Browser From Sleeping

Web developers still have a difficult job when it comes to mobile; the web will never provide as many APIs or as much control as native mobile platforms but our users expect the same excellent experience. Creating HTML5 games and media-heavy apps for ... more