hello.js

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

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


Tuesday, 16 May, 2017 UTC

Get Python Requirements Package Hashes

Get Python Requirements Package Hashes

Python’s (pip’s) requirements.txt file is the equivalent to package.json in the JavaScript / Node.js world. This requirements.txt file isn’t as pretty as package.json but it not only defines a version but goes a step further, providing a sha hash to ... more


Wednesday, 10 May, 2017 UTC

currencylayer: Simple, Effective Currency Conversion

currencylayer: Simple, Effective Currency Conversion

Every developer that’s maintained an eCommerce site will tell you that being responsible for properly handling currency will tell you it can be a very stressful task. If you write buggy or insecure code, you’re going to cost either your employer or the ... more


Tuesday, 9 May, 2017 UTC

Building Animated SVG Banners

Building Animated SVG Banners

I’ve been reading David Walsh’s blog for years. The tips and tutorials he shares have helped me fix a lot of problems. I love that I get to support him now by advertising TrackJS on his site. Plus, I get a chance to build some cool SVG animations! I’m ... more


Tuesday, 9 May, 2017 UTC

Chris Coyier: Some Amazing Work on CodePen III

Chris Coyier: Some Amazing Work on CodePen III

I’m back! David asked me to rope up some of my favorite stuff on CodePen again, which I both love doing, and wince at the thought of having to pick so few favorites. I like a ton of stuff on CodePen. It’s kind of a hobby of mine. Here’s some things that ... more


Tuesday, 2 May, 2017 UTC

Conference Giveaways: Fluent Conference and Velocity Conference!

Conference Giveaways: Fluent Conference and Velocity Conference!

Two of O’Reilly’s amazing conferences are about to hit San Jose: Fluent and Velocity. Each conference is taking place in San Jose, CA from June 19-22. You’ll learn a ton from the amazing speakers, network with developers like yourself, and have the opportunity ... more


Wednesday, 19 April, 2017 UTC

Command Line Polling

Command Line Polling

In an ideal world, we would have to poll for anything; we would always have events to trigger other functions. This isn’t an ideal world and, however, so it’s important to know how to poll in many languages. I’ve covered JavaScript polling (with and ... more


Monday, 10 April, 2017 UTC

Serve a Directory with Ruby

Serve a Directory with Ruby

Quickly serving a directory using PHP, Node.js, or Python allows for quick testing with as little hassle as possible. Imagine having to stand up apache or another server just to serve a directory — gross! Since I had touched the three important languages, ... more


Monday, 10 April, 2017 UTC

Product Personalization Images with Cloudinary (Sponsored)

Product Personalization Images with Cloudinary (Sponsored)

A few weeks ago I experimented with using Cloudinary in eCommerce sites because dynamic imagery is a massive part of eCommerce needs. Media-heavy websites usually employ powerful, expensive image-manipulation software so that they can create images on ... more


Thursday, 6 April, 2017 UTC

Prevent JavaScript Hotlinking with .htaccess

Prevent JavaScript Hotlinking with .htaccess

Almost a decade (!) ago I wrote a post about preventing image hotlinking. We all have the right to protect imagery hosted on our domain because it can slow our site down tremendously. I love that post because it shows you hot to replace the image requested ... more


Monday, 27 March, 2017 UTC

Scrape Images with wget

Scrape Images with wget

The desire to download all images or video on the page has been around since the beginning of the internet. Twenty years ago I would accomplish this task with a python script I downloaded. I then moved on to browser extensions for this task, then started ... more


Monday, 20 March, 2017 UTC

Using Cloudinary for eCommerce

Using Cloudinary for eCommerce

Nothing improves sales on the web than imagery and video. You can describe an item a dozen ways but one picture can suck the user right in, multiple photos (including a nice zoom feature) can clinch the sale. What does this mean? It’s important to provide ... more


Wednesday, 8 March, 2017 UTC

Functional Programming (FP) By Any Other Name…

Functional Programming (FP) By Any Other Name…

Don’t worry, this is not YAMA (yet another monad article)! Instead, I want to talk about a library I’ve recently released that offers a helpful twist on typical functional programming (“FP”) operations (like map(..) , compose(..) , etc). Before we jump ... more


Tuesday, 7 March, 2017 UTC

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


Monday, 6 March, 2017 UTC

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


Monday, 27 February, 2017 UTC

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


Thursday, 23 February, 2017 UTC

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


Wednesday, 22 February, 2017 UTC

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


Tuesday, 21 February, 2017 UTC

Modern JavaScript Apps with Neutrino

Modern JavaScript Apps with Neutrino

Utilize tooling that harnesses the power of Webpack with ease of simple presets to quickly start JavaScript projects, all without upfront configuration. Taking the plunge into starting a new JS project often brings along a significant effort into preparing ... more


Tuesday, 21 February, 2017 UTC

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.all comes to mind, allowing us to react when multiple ... more


Friday, 17 February, 2017 UTC

Handpicked Resources for 2017 (Sponsored)

Handpicked Resources for 2017 (Sponsored)

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


Thursday, 16 February, 2017 UTC

WhitestormJS v2 Beta: New Ecosystem

WhitestormJS v2 Beta: New Ecosystem

We always improve our apps: refactor, update dependencies, practices as well as user experience. In whitestorm.js v2 we update API, app structure. The main goal of the second version is to improve flexibility as much as we can. 3D rendering is a bit ... more


Wednesday, 15 February, 2017 UTC

Follow URL Redirects with Node.js

Follow URL Redirects with Node.js

URL shorteners are a dime a dozen these days, and it is quite nice to have a pretty URL instead of a mile long string, but there are some downsides to URL shorteners: they can mask dangerous URLs and getting to the endpoint can be slow, since you end ... more