---
title: "What are closures? / Hapi is back / Human friendly natural language date picking"
publication: "JavaScript Weekly"
issue: 497
published_at: "2020-07-17"
canonical_url: "https://javascriptweekly.com/issues/497"
---

Plus more JavaScript links, tutorials, and projects.       

#497 — July 17, 2020 

[Unsubscribe](https://javascriptweekly.com/leave/*|UID|*)|[Read on the Web](https://javascriptweekly.com/issues/497)   

JavaScript Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/v1594997539/p7kkdfjwowd1jpjxxq4v.png)](https://github.com/francisrstokes/super-expressive)  

[Super Expressive: Build Regexes in (Almost) Natural Language](https://github.com/francisrstokes/super-expressive) — A library for building regular expressions (something many developers have a problem with in their native format) using an ‘almost natural language’ approach. It’s not for me but the code examples look interesting. 

Francis Stokes   

[📊 Billboard.js 2.0: D3.js-Powered Charts Library](https://t.co/iRnztThIr9?amp=1) — [Billboard.js](https://github.com/naver/billboard.js#readme) is a chart library built on top of d3.js that supports a [wide variety of chart types](https://naver.github.io/billboard.js/demo/) in all modern browsers. 2.0 is a rewrite into TypeScript plus a lot of refactoring and performance improvements. 

Jae Sung Park   [![\](https://copm.s3.amazonaws.com/b5134d8e.jpg)](https://fusionauth.io/download?utm_campaign=Cooperpress&utm_source=email) 

[Get a Free T-Shirt. It Doesn’t Cost Anything to Get Started](https://fusionauth.io/download?utm_campaign=Cooperpress&utm_source=email) — FusionAuth provides authentication, authorization, and user management for any app: deploy anywhere, integrate with anything, in minutes. Download and Install today and we'll send you a free t-shirt. 

FusionAuth sponsor   

[Apollo Client 3.0 Released: The Full Featured GraphQL Client](https://www.apollographql.com/blog/announcing-the-release-of-apollo-client-3-0/) — Apollo Client is commonly associated with React but it can also be used with Angular or on its own. [GitHub repo.](https://github.com/apollographql/apollo-client) 

Ben Newman (Apollo)     

**⚡️ Quick bytes:** 

- So the [Hapi](https://hapi.dev/) project was originally going to come to an 'end', but [now it's not.](https://github.com/hapijs/hapi/issues/4113) It's back!
- If watching a developer ▶️ [fly through 6 code katas in 11 minutes](https://www.youtube.com/watch?v=K6NG3dIbOg0) sounds entertaining to you, enjoy! He explains what he's doing too so you might learn something.
- You can now start up a new Codepen [by visiting `pen.new`](https://pen.new).
- 🎧 [UI Therapy](https://uitherapy.fm/) is a new podcast with an interesting episode on [Snowpack and Pika](https://uitherapy.fm/episodes/3) featuring an interview with their lead creator.
- Adobe Flash passes off into the sunset later this year, and [Ars Technica have taken a look back at its story.](https://arstechnica.com/information-technology/2020/07/the-rise-and-fall-of-adobe-flash/) A nice bit of nostalgia.   

💻 Jobs  

[JavaScript Developer at X-Team (Remote)](https://x-team.com/remote-javascript-developer-jobs/?utm_source=cooperpress&utm_medium=email-ad&utm_campaign=js) — Join the most energizing community for developers and work on projects for Riot Games, FOX, Sony, Coinbase, and more. 

X-Team   

[Find a Job Through Vettery](https://www.vettery.com/tech?utm_source=newsletter&utm_medium=cooper-javascriptweekly&utm_term=tech&utm_content=grouped&utm_campaign=ad-77584) — Use Vettery to connect with growing tech teams at startups and Fortune 500 companies. 

Vettery  

📚 Tutorials, Opinions and Stories  

[What The Fork is a Closure?](https://whatthefork.is/closure) — A sanitized fork of a new project from React’s Dan Abramov that sets out to explain what different development concepts mean, and he has started with closures. 

Dan Abramov   

[How To Create a GitHub _Profile_ README](https://www.aboutmonica.com/blog/how-to-create-a-github-profile-readme) — Did you know you can now create a document that’s shown on your main GitHub profile page? It’s not JavaScript specific but I imagine a lot of you would find this neat to do! 

Monica Powell   

[How to Build Forms With React the Easy Way](https://www.telerik.com/blogs/how-to-build-forms-with-react-the-easy-way?utm_medium=cpm&utm_source=jsweekly&utm_campaign=kendo-ui-react-blog-easy-react-form&utm_content=sponsored-link) — Building forms with React can be frustrating. TJ VanToll suggests one way to tackle this challenge with ease. [Read more](https://www.telerik.com/blogs/how-to-build-forms-with-react-the-easy-way?utm_medium=cpm&utm_source=jsweekly&utm_campaign=kendo-ui-react-blog-easy-react-form&utm_content=sponsored-link). 

Progress KendoReact sponsor   

[A Simple Explanation of Event Delegation](https://dmitripavlutin.com/javascript-event-delegation/) — A useful pattern when listening for events on multiple elements using just one event handler. 

Dmitri Pavlutin   

[Generating UUIDs at Scale on the Web](https://medium.com/teads-engineering/generating-uuids-at-scale-on-the-web-2877f529d2a2) — Can you trust every browser to generate globally unique identifiers at scale? Apparently yes. This sounds boring but the technicalities are more interesting than you’d initially think! 

Matthieu Wipliez   

[Building SVG Components in React](https://pganalyze.com/blog/building-svg-components-in-react) — When building responsive web apps it makes nothing but sense to use [SVG](https://en.wikipedia.org/wiki/Scalable_Vector_Graphics) as opposed to more traditional image formats. SVG stores an XML-based _description_ of the image which can be progammatically manipulated similar to HTML. It’s tailor made to be incorporated into components. 

Maciek Sakrejda   

[CSS Transitions in Vue.js and Nuxt.js](https://www.smashingmagazine.com/2020/07/css-transitions-vuejs-nuxtjs/) — For when you want a little visual pizazz when data changes or is added/removed. 

Timi Omoyeni   

[Building Strong Distributed Teams, One Pixel at a Time](https://circleci.com/blog/building-strong-distributed-teams-one-pixel-at-a-time/) — Learn how eng. managers can improve teams based on three key “C” pillars: connection, communication, and collaboration. 

CircleCI sponsor   

[Type Safe JavaScript with JSDoc](https://remysharp.com/links/2020-07-07-e04e5ccb) — If TypeScript just isn’t your cup of tea but you see the value in types, what can you do? Remy reminds us of a popular post from 2018 with a JSDoc-based approach. 

Remy Sharp   

[How You Might Not Need Vuex with Vue 3](https://dev.to/blacksonic/you-might-not-need-vuex-with-vue-3-52e4) 

Gábor Soós  

🔧 Code & Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/v1594997306/j10kdywjsxjb0eby8bgv.png)](https://reactnative.dev/blog/2020/07/06/version-0.63)  

[React Native 0.63 Released](https://reactnative.dev/blog/2020/07/06/version-0.63) — The latest version of React Native ships with _LogBox_, a totally new way to monitor errors and warnings raised in development. 

Mike Grabowski   

[Inclusive Dates: A Human-Friendly Date Picker](https://github.com/fymmot/inclusive-dates) — You can try it [here](https://fymmot.github.io/inclusive-dates/). **The user can type natural language phrases** like “Next Friday” or “in 30 days” and the picker will move to the correct date(!) 

Tommy Feldt   

[Hukum: Display GitHub Action Progress in the Terminal](https://github.com/abskmj/hukum) — If you’re using GitHub’s _Actions_ CI/CD feature and want to keep a real-time eye on it, this will help. Built in Node. 

abskmj   

[wait-on: A CLI and Node Library to Wait for Ports, Files, Sockets, etc.](https://github.com/jeffbski/wait-on) — For when you need to wait until files, ports, sockets, and similar resources become available (or the opposite). 

Jeff Barczewski   

[currency.js 2.0: A Library for Handling Currencies](https://github.com/scurker/currency.js) — Built to work around floating point issues, currency.js provides a variety of useful methods and formatters for working with monetary values. 

Jason Wilson   

[xmlbuilder2: An XML Builder Library](https://github.com/oozcitak/xmlbuilder2) — Convert JS objects into XML, parse and serialize XML documents, or create XML documents using chained function calls. Aimed at Node but can be used in the browser too. 

Ozgur Ozcitak   

[Help Shape the Future of Video, Fill Out the 2020/21 Video Dev Survey](https://www.surveymonkey.com/r/N3LPTTR) 

Bitmovin Inc. sponsor   

[vue-flux: A Responsive Image Slider with 20 Cool Transitions](https://github.com/deulos/vue-flux) — See the transitions in action [on the demo page](https://deulos.github.io/vue-flux-docs/demos/). Mobile-friendly, usable via arrow keys, and includes an optional parallax component. 

oscar deulos   

[dequal: A Tiny (305B) Utility for Check for Deep Equality](https://github.com/lukeed/dequal) 

Luke Edwards   

[Jaxcore Bumblebee: A JavaScript Voice Application Framework](https://github.com/jaxcore/bumblebee) — For building ‘conversational voice assistants’ (so think Alexa, Cortana, Siri, etc.) 

Jaxcore Software Inc  

🎨 Creative Corner  [![\](https://res.cloudinary.com/cpress/image/upload/v1595000197/nt1sdnicpkphotuiak2n.png)](https://webgazer.cs.brown.edu/) 

[WebGazer.js: Webcam Eye Tracking in the Browser](https://webgazer.cs.brown.edu/) — I’m going to file this under _“fun, but..”_ The [examples](https://webgazer.cs.brown.edu/#examples) are certainly neat and moderately accurate for me. A fun demo and a neat piece of work but with limited use cases, IMHO. 

Brown HCI Group         

Published by [Cooperpress](https://cooperpress.com/) and edited by [Peter Cooper](https://twitter.com/peterc) 

'JavaScript' is a trademark of Oracle Corporation in the US
We are not endorsed by or affiliated with Oracle. 

[Change your email address](https://javascriptweekly.com/edit_subscription/*|UID|*) or [stop getting this newsletter](https://javascriptweekly.com/leave/*|UID|*). 

© Cooper Press Ltd · Fairfield Enterprise Centre, Louth, LN11 0LS, United Kingdom
