hello.js

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

Thursday, 21 June, 2018 UTC

Convert HTML to Markdown

Convert HTML to Markdown

One of my biggest mistakes with this blog was not finding a WordPress plugin that would allow me to write my posts with markdown; to this day I still need to write posts in “Visual” mode and then manually convert the post to HTML for “Text” mode. One ... more


Tuesday, 12 June, 2018 UTC

Uppy File Uploading

Uppy File Uploading

One of the big tasks I was charged with at my first job was setting up a system by which any customer or potential customer (aka anonymous user) could upload PDF and image files. I had loads of constraints to deal with: browser support, server settings, ... more


Tuesday, 5 June, 2018 UTC

What’s Next for Hybrid App Developers? (Sponsored)

What’s Next for Hybrid App Developers? (Sponsored)

The story of hybrid application development is a never-ending one. Each framework has to continuously strive and innovate to remain relevant, and the discussion of which framework to use is a question often asked. Most hybrid applications are built using ... more


Saturday, 2 June, 2018 UTC

Script & Style Show: Episode 11: Ionic Framework with Max Lynch

Script & Style Show: Episode 11: Ionic Framework with Max Lynch

In this episode: David blames his wife for getting sick and missing last week’s show, Todd’s got a new Jeep, and David then blames his wife for not letting him have a Jeep. Oh, and Max Lynch of Ionic Framework fame stops by to talk about Ionic, Stencil, ... more


Wednesday, 30 May, 2018 UTC

OpenRates Currency API (Sponsored)

OpenRates Currency API (Sponsored)

Creating your own APIs can be a total nightmare: worrying about uptime, load balancing, data accuracy, caching, and all of the other risks would keep me up at night. And if your API relates to money in any way? If you get that wrong you could be costing ... more


Tuesday, 22 May, 2018 UTC

Script & Style Show: Episode 10: Dojo

Script & Style Show: Episode 10: Dojo

In this episode: David and Todd welcome Dojo and JavaScript legend Dylan Schiemann and TypeScript and Dojo 2 superhero Nick Nisi. We cover the early days of Dojo, the road to 2.0, and what’s in Dojo 2.0 and beyond. Enjoy! The post Script & Style ... more


Friday, 18 May, 2018 UTC

Detect WebVR Support with JavaScript

Detect WebVR Support with JavaScript

It’s been two years since I was heavily involved with WebVR at Mozilla but, despite not contributing every day, I can see VR making leaps and bounds, from Firefox making an increased effort to Chrome pushing VR and Oculus and HTC (Vive) improving their ... more


Monday, 14 May, 2018 UTC

How to Get a React Component’s Element

How to Get a React Component’s Element

JSX is an amazing pseudo-language for React, and if I’m honest, it’s what brought me to love React so much. Using React without JSX is cumbersome and frustrating, while using JSX is such an easier way to express your code. One drawback of JSX, however, ... more


Tuesday, 8 May, 2018 UTC

Vertically Centering with Flexbox

Vertically Centering with Flexbox

Vertically centering sibling child contents is a task we’ve long needed on the web but has always seemed way more difficult than it should be. We initially used tables to accomplish the task, then moved on to CSS and JavaScript tricks because table layout ... more


Monday, 7 May, 2018 UTC

React and autofocus

React and autofocus

While I love ReactJS, I can say that I sometimes find interactions that were easy during the pre-ReactJS are annoyingly difficult or at least “indirect”. One example is properly ensuring that a given <input> element gets focused when a button in ... more


Wednesday, 18 April, 2018 UTC

Creating Spacers with Flexbox

Creating Spacers with Flexbox

I was one of the biggest fans of flexbox before it hit but, due to being shuffled around at Mozilla, I never had the chance to use it in any practice project; thus, flexbox still seems like a bit of a mystery to me. This greatly pains me because I feel ... more


Monday, 9 April, 2018 UTC

The Dark Side of Promises

The Dark Side of Promises

Since the release of es6 many new features have found their way into NodeJS, but non had quite the same impact as promises. Promises have been developed for the browser before es6 was even a thing. There were several implementations that have been used ... more


Saturday, 7 April, 2018 UTC

Script & Style Show: Episode 6: Debugging with Jason Laster

Script & Style Show: Episode 6: Debugging with Jason Laster

On this week’s episode: we welcome my colleague Jason Laster from Mozilla to speak about the Firefox DevTools debugger. We talk debugging, console shame, the future of JavaScript debuggers, and more! Have ideas for the next episode? Comment below! The ... more


Tuesday, 3 April, 2018 UTC

Destructuring and Function Arguments

Destructuring and Function Arguments

The JavaScript language has benefitted from some really awesome new features over the past few years, including arrow functions, the spread operator, and default function argument values. Even if your browser doesn’t yet support proposed JavaScript API ... more


Saturday, 31 March, 2018 UTC

Script & Style Show: Episode 5: Q&A

Script & Style Show: Episode 5: Q&A

On this week’s episode: Todd’s back from vacation while David’s knee-deep in a Firefox Debugger breakpoint UI update. We eventually move on to viewer questions that range form JavaScript knowledge, the Array.flatten controversy, front-end testing (TDD ... more


Friday, 23 March, 2018 UTC

5 Crucial Concepts for Learning d3.js and How to Understand Them

5 Crucial Concepts for Learning d3.js and How to Understand Them

You may have already heard about d3.js , the dazzling JavaScript library that lets you create beautiful charts and graphics with just a few lines of code. You might have seen some of the fantastic examples of D3 in action, or you may have heard that ... more


Tuesday, 20 March, 2018 UTC

Building a NodeJS App with MongoDB Atlas and AWS Elastic Container Service – Part 2 (Sponsored)

Building a NodeJS App with MongoDB Atlas and AWS Elastic Container Service – Part 2 (Sponsored)

It’s that time of year again! This post is part of our Road to AWS re:Invent 2017 blog series. In the weeks leading up to AWS re:Invent in Las Vegas this November, we’ll be posting about a number of topics related to running MongoDB in the public cloud. ... more


Monday, 19 March, 2018 UTC

Script & Style Show: Episode 4: Tooling

Script & Style Show: Episode 4: Tooling

On this week’s episode: David starts the show by revealing he has a headache and an hour of discussing JavaScript tooling will not make it better. The show covers the history of JavaScript tooling (from nothing to JavaScript loaders, minifiers, webpack, ... more


Thursday, 15 March, 2018 UTC

React Video Player

React Video Player

Streaming entertainment is a massive interest of mine as both a consumer and web developer. My love for streaming entertainment dates back to the early days of RealPlayer and the misery of a million codecs. Fast forward to today and I’m working a lot ... more


Tuesday, 13 March, 2018 UTC

Building a NodeJS App with MongoDB Atlas and AWS Elastic Container Service – Part 1 (Sponsored)

Building a NodeJS App with MongoDB Atlas and AWS Elastic Container Service – Part 1 (Sponsored)

It’s that time of year again! This post is part of our Road to AWS re:Invent 2017 blog series. In the weeks leading up to AWS re:Invent in Las Vegas this November, we’ll be posting about a number of topics related to running MongoDB in the public cloud. ... more


Thursday, 22 February, 2018 UTC

Script & Style Show: Episode 1: Marc Grabanski

Script & Style Show: Episode 1: Marc Grabanski

On this second episode of the Script and Style show, Todd and I welcome Marc Grabanski of Frontend Masters. After commiserating over home automation madness, we asked Marc about how he got started in the web industry, his first jobs, his entrance in ... more


Monday, 19 February, 2018 UTC

How to Create a Twitter Bot with Node.js

How to Create a Twitter Bot with Node.js

Twitter bots have been in the news over the past few years due to election meddling, not only in the United States but stretching across the globe. There are, however, good and logical reasons for creating Twitter bots. In order to see how easy it was ... more


Thursday, 8 February, 2018 UTC

Enhanced Email Validation with mailboxlayer (Sponsored)

Enhanced Email Validation with mailboxlayer (Sponsored)

Validation is an important part of managing any data you receive, especially when it comes to web forms. If you really want to be secure with the data, you use HTML5 validation rules, JavaScript validation, and then the most importantly layer, the server-side ... more


Friday, 2 February, 2018 UTC

Using Storybook with Nuxt

Using Storybook with Nuxt

Nuxt.js has been a lot of fun to use in production web apps and side projects. It’s simple, fast, and seems very in line with web standards when it comes to creating components, importing plugins, etc. Equally as exciting has been the rise of Storybook. ... more


Thursday, 25 January, 2018 UTC

Better Node.js Console Dumps with console-probe

Better Node.js Console Dumps with console-probe

Writing JavaScript in the Node.js environment has always felt a bit more difficult; probably because browser developer tools have become incredibly powerful, interactive, and visually appealing. Using console.log on the client side isn’t the best of ... more


Wednesday, 10 January, 2018 UTC

Hello DevTools!

Hello DevTools!

When I was a 17 year old noob, going to technical college in my home town, I was introduced to a browser called Firebird, which would later be renamed Firefox. I was immediately drawn to this new browser; Firebird was fresh, exuded excitement, but most ... more


Tuesday, 9 January, 2018 UTC

Awesome File Compression and Delivery with KeyCDN and Brotli

Awesome File Compression and Delivery with KeyCDN and Brotli

I’ve seen the KeyCDN name around for years, mostly as a free content delivery network (CDN) for many open source JavaScript frameworks, and based on that alone I’ve always thought very well of them. KeyCDN recently asked me to check out one of their ... more


Tuesday, 9 January, 2018 UTC

Six Tiny But Awesome ES7 + ES8 Features

Six Tiny But Awesome ES7 + ES8 Features

Development of new features for the core JavaScript language has really improved over the last five years, thanks in part to JavaScript frameworks pushing the limits and proving how important given functionality can be. My previous ES6 posts, Six Tiny ... more


Tuesday, 2 January, 2018 UTC

JavaScript fetch with Timeout

JavaScript fetch with Timeout

The fetch API started out as a target for criticism because of lack of timeout and request cancelation. While those criticisms could be argued as fair or not, the you can’t deny that the fetch API has been pretty awesome. As we’ve always done, if a feature ... more


Monday, 1 January, 2018 UTC

Mine Bitcoin and Monero in the Browser

Mine Bitcoin and Monero in the Browser

I recently heard this story from Buenos Aires where a Starbucks was caught was caught mining cryptocurrency on customer computers that were attempting to connect to free WiFi. I also ran a Twitter poll recently asking if people would allow sites to mine ... more