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

NEW !!!

Sunday, 8 December, 2019 UTC

reason: Write a simple custom JSON decoder for Decco in ReasonML

Decco is a great library for automatically generating JSON encoders and decoders, but most real-world projects will quickly run into the need to add custom data types that Decco doesn't ship with support for. This lesson shows how to simply add a custom ... more

Friday, 6 December, 2019 UTC

[Course] javascript: Advanced JavaScript Foundations

It all starts with syntax. From there, once you’ve got the concepts down, you can move into using a framework where you figure out how to make things “just work”. Everything is great, until it’s not. If someone put you on the spot right now and asked ... more

Thursday, 5 December, 2019 UTC

javascript: Implement Inversion of Control

Inversion of Control is a simple principle that can drastically improve your reusable code. In this lesson we'll go over the concept and you'll get an idea of how you can apply it for your own abstractions. This is based on my blog post: [Inversion of ... more

Thursday, 5 December, 2019 UTC

javascript: Get started with Netlify Serverless Functions

[Netlify Functions](https://www.netlify.com/products/functions/) are super empowering, but they can be a little confusing, so in this lesson you'll learn the total basics of serverless functions using Netlify's Functions functionality. This is based on ... more

Thursday, 5 December, 2019 UTC

javascript: Get started with Web Workers

Web Workers have wide cross-browser support. All the way back to IE10. They can seriously help you speed up slow parts of your application. In this lesson we'll learn the total basics of how to get web workers running and communicating across threads. ... more

Tuesday, 3 December, 2019 UTC

reason: Async / Await in ReasonML

ReasonML is a fantastic way to write Javascript! But it doesn't yet have a built-in async / await syntax. Furthermore the built-in libraries for working with Javascript promises are awkward to work with, and produce code that's hard to read. This lesson ... more

Wednesday, 27 November, 2019 UTC

javascript: Intro to Testing JavaScript Workshop

null ... more

Tuesday, 19 November, 2019 UTC

vscode: Adding Custom Syntax Highlighting to a Theme in VSCode

VSCode Themes are a quick way to update the color scheme and syntax highlighting of your code, but you might find your favorite theme isn't quite perfect. VSCode supports customizations that allow you to fix that problem. In this lesson, I add settings ... more

Tuesday, 19 November, 2019 UTC

vscode: Adding Language Specific Settings in VSCode

Developers can optimize their VSCode settings per language. In this lesson, I show an example where I add settings specifically for MDX files. This pattern can be used to adjust settings for any language supported by VSCode. The settings used in this ... more

Tuesday, 12 November, 2019 UTC

egghead: Use requestIdleCallback to schedule JavaScript tasks at an optimal time

JavaScript is single-threaded, which can present some problems when creating an interactive user experience. If JavaScript runs too long while a user is attempting to interact with a page, it can cause noticeable jank or lag, which degrades the experience. ... more

Thursday, 7 November, 2019 UTC

vscode: Refactor Constructor Functions and Promises to ES6 with One Click in VS Code

Whether you are having a hard time with catching up to classes or async await or maybe you have legacy code written with constructor functions and promises -- you can refactor them with just one-click away in your VS Code editor. This feature is built ... more

Friday, 1 November, 2019 UTC

javascript: Filter Strings with the Filter Array Method in JavaScript

This is a small breakdown of how the filter array method works in JavaScript. We write a function that takes in a string and applies `filter` to the array. ... more

Thursday, 31 October, 2019 UTC

css: Create a Card Flip Animation with CSS

Animation can be a powerful way to enhance a user experience. In this lesson, we'll walk through the creation of a card-flip animation, creating a nice visual effect when toggling between the front and back of a div meant to represent a card, like a playing ... more

Wednesday, 30 October, 2019 UTC

npm: Make informed decisions about 3rd party npm libraries with bundlephobia

The ability to pull in just about anything your project needs from npm is amazing, but it can also lead to bundle bloat if you aren't selective about what libraries you pull into your library. In this lesson, we'll take a look at bundlephobia.com, a tool ... more

Monday, 28 October, 2019 UTC

reason: Implement a Sticky Footer within a ReasonReact App Using the bs-css BuckleScript Package

One of the key benefits of BuckleScript is the ease in which it makes the process of porting JavaScript libraries so they can be used within the context of a ReasonML application. The Reason Package Index, or [redex](https://redex.github.io/), provides ... more

Wednesday, 23 October, 2019 UTC

egghead: Up and Running with React Hooks inside of a ReasonML

Throughout the last year, the use of React hooks has taken the world of web development. Hooks provide users with an easy way to handle interactivity within ReactJS applications, so it's no surprise that the latest release of the ReasonReact library makes ... more

Tuesday, 22 October, 2019 UTC

javascript: Advanced JavaScript Fundamentals Workshop Setup

If you are attending my advanced JavaScript workshop, please take a moment to watch this video. I will go over why you should care, what to expect, and what is needed for you to follow along. Here is the github repo: https://github.com/twclark0/advanced-javascript-fundamentals ... more

Tuesday, 15 October, 2019 UTC

[Course] react: Immutable JavaScript Data Structures with Immer

Using immutable data structures provides many benefits, including making your code easier to reason about and less prone to bugs. However, since JavaScript doesn't include support for immutable data structures out of the box, you need to use a third party ... more

Monday, 14 October, 2019 UTC

javascript: Style vanilla JavaScript apps with Emotion

In this lesson, we look at how we can style any JavaScript application with the framework agnostic "emotion" package from Emotion. We leverage the `css` function - which takes in some styles, and returns a className - to apply styles to a heading ... more

Wednesday, 2 October, 2019 UTC

gatsby: Inject Custom JavaScript Into a Gatsby Site

Learn how to add custom JavaScript to your Gatsby's main HTML. ... more

Sunday, 29 September, 2019 UTC

faunadb: Installing the FaunaDB CLI and using it to send queries from a local file

The FaunaDB CLI is distributed on NPM and includes an interactive shell as well as the ability to send queries from a file. ``` npm i -g fauna-shell fauna cloud-login fauna -h fauna list-databases ``` open a shell to a database: ``` fauna shell test-demo ... more

Wednesday, 25 September, 2019 UTC

chrome-devtools: See the Critical Rendering Path in the browser

The Critical Rendering Path is what happens from the moment your javascript is running to the moment something changes on screen. In this lesson, we will see how to monitor and view the critical rendering path in the browser. ... more

Friday, 20 September, 2019 UTC

javascript: Store Heading Metadata in a Markdown Document with remark

You can use unified's [virtual file](https://github.com/vfile) to add data from a document in order to use it elsewhere. In this lesson we'll store metadata from all heading nodes in a markdown document using remark and vfile. ... more

Friday, 13 September, 2019 UTC

egghead: Leverage the Superpowers of Brace Expansions to become an NPM Install Ninja

This lesson teaches its viewers a neat trick for installing NPM packages. This trick is made possible through "Brace Expansion". It allows us to install groups of packages from NPM without having to name each package explicitly, granted that ... more

Friday, 13 September, 2019 UTC

egghead: Use Brace Expansion to Maximize Efficiency When Installing Packages from NPM

This lesson teaches its viewers a neat trick for installing NPM packages. This trick is made possible through "Brace Expansion". It allows us to install groups of packages from NPM without having to name each package explicitly, granted that ... more

Thursday, 12 September, 2019 UTC

javascript: Construct a Regex to Match Twitter Mentions with Regexr

[regexr](https://regexr.com) is a powerful tool for debugging existing regexes and creating new ones. In this lesson, we'll use the app to create a regex that matches Twitter-style mentions in a string. It will go over a few regex concepts including capture ... more

Thursday, 12 September, 2019 UTC

vscode: VSCode Settings.json vs Settings UI

Switch back to settings.json based settings instead of the Settings UI and set custom keybindings to both the UI and the JSON file with the split view. ... more

Wednesday, 11 September, 2019 UTC

react: Set up ESLint to audit Accessibility issues in React

Our first layer of defense when building accessible React applications is to add some auditing tools to our development workflow. This should include adding static analysis checking for common accessibility standards and best practices. We can get this ... more

Wednesday, 11 September, 2019 UTC

javascript: Add and Remove Elements in an Array Using Splice

Learn how to use splice with one, two or three+ arguments. With one argument splice removes all elements past that index. With two arguments it removes the number of elements specified past the first argument index. With three+ arguments it removes the ... more

Wednesday, 11 September, 2019 UTC

javascript: Create a PostCSS Plugin to Remove Vendor Prefixes

[PostCSS](https://github.com/postcss/postcss) is a CSS processor that allows you to modify source CSS with plugins. In this lesson we'll modify the CSS AST by creating a plugin that removes declarations when they contain vendor prefixes. ... more