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

NEW !!!

Monday, 9 December, 2019 UTC

JavaScript ~~

JavaScript is loaded with tiny syntax tricks to accomplish useful effects. For example, explore any codebase to see !! being used to convert a value to a boolean value. Have you seen ~~ before? Let’s have a look at what it does! We can employ ~~ to trigger ... more

Monday, 25 November, 2019 UTC

Image Lazy Loading

Lazy loading images is a practice that’s been popular for a decade and for good reason: images are usually the heaviest downloads on a given webpage and avoiding unloading images that are never seen saves the user bandwidth. There are plugins for lazy ... more

Wednesday, 20 November, 2019 UTC

Getting Started with GraphQL

GraphQL was developed by Facebook in 2012 to power up its mobile apps. Since open-sourcing GraphQL specification in 2015, it gained a lot of popularity and is now used by many development teams, including giants like GitHub, Twitter or Airbnb. Why so? ... more

Wednesday, 6 November, 2019 UTC

JavaScript waitForTime

I write a lot of tests for new features within Firefox DevTools. We have hundreds of “mochitests” which open the browser and perform synthetic actions like clicking, typing, and other user actions. I’ve previously written about waitForever which essentially ... more

Tuesday, 5 November, 2019 UTC

Simple Scraping API with zenscrape (Sponsored)

So many developers believe that scraping a URL’s content is easy — just a simple curl and you’re done, right? Nope. CAPTCHAs, rate limitations, origin-specific limitations — they make getting content off the web a nightmare. Luckily we now have services ... more

Tuesday, 15 October, 2019 UTC

How to Create a QR Code

QR codes aren’t everyone’s cup of tea but I quite like them. If I see something I want to remember or check out later, especially when on the road, it’s super easy to take a quick picture — it’s much easier than trying to remember a URL and much faster ... more

Monday, 14 October, 2019 UTC

Scrape the Web with scrapestack (Sponsored)

I first grew to love Firefox not as a web developer but as user, and what drew me to this amazing new browser was its add-on ecosystem. The add-on I used the most? Web scrapers. Piracy had just hit mainstream and I also need imagery and documentation ... more

Tuesday, 8 October, 2019 UTC

How to Detect an Ad Blocker

One of the unspoken rules of the internet is that most content is “free”… at the cost of webpage being littered with advertisements and trackers. This was’t a big problem in the early internet days but trackers and advertisements have become so intrusive ... more

Wednesday, 25 September, 2019 UTC

Easy Google Search Result API with Zenserp (Sponsored)

No matter how much experience I gain in this industry, one task I continue to fail at is building an accurate, flexible, and maintainable scraper for site search. As soon as sites change their HTML structure, my scrape is borked. When looking to build ... more

Wednesday, 18 September, 2019 UTC

weatherstack: an Amazing Weather API (Sponsored)

One of my first tasks each day is checking the weather; it’s a necessity for knowing what my children and I should wear, if I’m going to need to water the lawn or need to shovel snow, and if I can take meetings out on my patio. It’s also been one of ... more

Wednesday, 11 September, 2019 UTC

How to Not Minify Source with webpack

The webpack JavaScript utility has taken over the modern JavaScript landscape, so much so that it’s hard to be a JavaScript developer and not use it. JavaScript build utilities are the point where they do best practices implicitly, like minify code, ... more

Tuesday, 10 September, 2019 UTC

Stop Installing Packages Globally

These days, most front-end projects are going to involve NPM packages of some kind. Occasionally, when browsing documentation for these packages, I’ll see a recommendation to install a package like this. yarn global add <package> Or like this. ... more

Wednesday, 28 August, 2019 UTC

Reverse Lookups with JavaScript

I’ve always loved exploring regular expressions because they’re one of those skills that’s never taught in school — you need to pick them up on the fly, messing up and fixing them along the way. Regex’s are incredibly powerful, and one power they have ... more

Tuesday, 27 August, 2019 UTC

45 Web Tools To Master The Internet (Sponsored)

A big part of our daily jobs is accomplished with much ease and efficiency by using different web tools and services. There is no doubt that for any type of need there is a great solution that is doing its job. In this article, we are reviewed on short ... more

Friday, 23 August, 2019 UTC

Promises and Static Values

Async can throw a real wrench into the cogs of our programming workflows, all despite the fact that async is the modern JavaScript pattern. While async/await helps, there’s sometimes confusion about the way to have a single function that returns a value ... more

Monday, 5 August, 2019 UTC

then on Objects

Promises were a revelation in JavaScript development, allowing us to enjoy async processing and avoid callback hell. Many new APIs like Battery API, Cache API, and others use the promise API. One fact you may not know is that you can add a then method ... more

Monday, 29 July, 2019 UTC

Optional Chaining

For all of the improvements that the JavaScript language has added over the past few years, like the spread operator, default argument values, and arrow functions, there are still a few features I’d love to see implemented. One such feature is optional ... more

Friday, 26 July, 2019 UTC

JavaScript Proxy with Storage

The JavaScript Proxy API provides a wealth of “magic” within JavaScript, allowing you to use any object as sort of an alias that allows a wall of validation, formatting, and error throwing. Did you know that you could also employ the Proxy API as an ... more

Tuesday, 16 July, 2019 UTC

Detect Cryptocurrency by Wallet Address

I’ve always been a massive advocate of cryptocurrency. I love the technology, the ease of use, and the freedom that cryptocurrencies bring to the world. Despite my love of crypto, I know that adoption will take a long time and that the state of crypto ... more

Tuesday, 2 July, 2019 UTC

Set Video Playback Speed with JavaScript

I love that media has moved from custom plugins (Flash…gross) to basic HTML <video> and <audio> elements. Treating these media sources as just another element allows us to use CSS filters to adjust display, for example. The less we need to ... more

Thursday, 27 June, 2019 UTC

How to Debug Remote Browsers

It’s super frustrating when bugs pop up only in a remote browser. Something about that user, that device, or that environment is different, but I don’t know what! And of course, I can’t recreate it on my local development machine. The team at TrackJS ... more

Wednesday, 5 June, 2019 UTC

Detect if Element is a Web Component

I’ve advocated for web components since before they became a spec, mostly inspired by the Dojo Toolkit’s dijit framework. Empowering first class JavaScript widgets, as opposed to a mess of DIVs and templates, always made the most sense. Now that web ... more

Tuesday, 21 May, 2019 UTC

Resize Observer

Creating websites that are reactive and responsive used to be considered advanced but responsiveness is a necessity for successful websites and apps. We’ve added media queries, matchMedia , and a host of other APIs to help developers make responsiveness ... more

Tuesday, 21 May, 2019 UTC

AI-Backed Image Background Removal (Sponsored)

I’ve worked on dozens of eCommerce sites in my career and many of them were hamstrung by the same pain points: tax collection, payment customization, and image optimization. While tax collection and payment customization were important, image optimization ... more

Wednesday, 15 May, 2019 UTC

Using Array reduce

Every developer who specializes in any programming language will tell you there’s a powerful tool the language provides that they rarely use and wish they knew more about. For me, it’s Array.prototype.reduce . I quite enjoy the other Array methods like ... more

Tuesday, 7 May, 2019 UTC

Type Conversion with JavaScript Arrays

JavaScript’s loose nature allows developers to employ amazing tricks to do just about anything you’d like. I’ve detailed how you can filter falsy values in arrays using a filter(Boolean) trick, but reader David Hibshman shared another trick for typecasting ... more

Friday, 3 May, 2019 UTC

Awesome Visual Testing with Percy! (Sponsored)

The more complex the applications I work on, the more I rely on and invest in testing. Whether it’s flow typing, jest tests, unit tests, or selenium tests, I rely on all of them to enforce integrity and save me from myself. One type of testing that’s ... more

Thursday, 2 May, 2019 UTC

Flow Object.values(…)

JavaScript typing utilities, like Flow and TypeScript, have become popular in JavaScript apps of all sizes. As I mentioned in our Script & Style Show typing podcast, typing is a great way to implicitly implement documentation and validation. Flow ... more

Monday, 29 April, 2019 UTC

JavaScript Detect Async Function

JavaScript async/await has changed the landscape of how we code. We’re no longer stuck in callback or then hell, and our code can feel more “top down” again. Async functions require the following syntax: async function myFunction() { } To use await with ... more

Wednesday, 24 April, 2019 UTC

Convert Video to Grayscale

I’m a JavaScript fanatic but I’ve always been fascinated with media manipulation. Maybe it’s because I’ve secretly always wanted to be a designer, but I’m fine with being able to manipulate art with software instead of create the art myself. One type ... more