hello.js

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

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


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


Wednesday, 12 July, 2017 UTC

Streaming Data with Fetch() and NDJSON

Streaming Data with Fetch() and NDJSON

*”If you stream it, you can do it” — Walt Disney[^1] * Streams are trickling into the scene as we search for ways to improve performance. What if instead of waiting for our entire ajax response to complete, we could start showing the data as it arrives? ... more


Thursday, 29 June, 2017 UTC

Custom, Embeddable Site Search with Swiftype

Custom, Embeddable Site Search with Swiftype

As hard as we try to make our website navigation and content structure as logical as possible, a large percentage of users would prefer a simple search box to find what they need. That being the case, we need to ensure that site search is as accurate ... more


Thursday, 22 June, 2017 UTC

Add CSS and JavaScript Files to Phabricator Extensions

Add CSS and JavaScript Files to Phabricator Extensions

Every open source framework has its own methods of extending functionality; some make extending incredibly easy and others…not so much. Most of the time it comes down to how well the framework is documented. Phabricator did an awesome job of making necessary ... more


Tuesday, 13 June, 2017 UTC

Two-Factor Authentication with Node.js

Two-Factor Authentication with Node.js

There are a variety of strategies for protecting your important online credentials. We often hear about password managers and generators, but for me, the more important strategy is using two-factor authentication (2FA). Passwords can be guessed, phone ... more


Wednesday, 7 June, 2017 UTC

Fetch and Transform Remote Images with Cloudinary

Fetch and Transform Remote Images with Cloudinary

Many of my dives into Cloudinary’s amazing API like Instagram-like Filters, Image Security, Custom eCommerce, have started with uploading media (images, video, audio) to Cloudinary and then manipulating from there. As social media and user generated ... more


Friday, 26 May, 2017 UTC

Interview with Kyle Simpson, Chair for O’Reilly Fluent Conference

Interview with Kyle Simpson, Chair for O’Reilly Fluent Conference

O’Reilly Fluent Conference, taking place in San Jose on June 19-22, is one of the best conferences if you’re a front-end developer like myself. Most of the big names I’ve known over the past decade have graced Fluent’s stage, one of them being Kyle Simpson. ... more