---
title: "Quaking in our JavaScript boots"
publication: "JavaScript Weekly"
issue: 556
published_at: "2021-09-17"
canonical_url: "https://javascriptweekly.com/issues/556"
---

Plus JavaScript for games consoles, Deno 1.14, and an updated D3.js intro. |        

#​556 — September 17, 2021 

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

JavaScript Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/ajylma7tr21iabrjdugx.jpg)](https://js13kgames.com/entries/q1k3)   

[Q1K3: A JavaScript Homage to Quake in Just 13KB](https://js13kgames.com/entries/q1k3) — It’s (another) quiet week for big JavaScript news, so we’re going with the _fun_ angle and looking at a popular entrant to the latest [JS13KGames](https://js13kgames.com/) contest that ended this week. No winners yet but this Quake clone is _amazing_ given the limitations, and takes me right back to 1996 when I installed it off a magazine cover disc (when the demo even then was 10 megabytes). 

Dominic Szablewski   

[ChowJS: An AOT JavaScript Engine for Game Consoles](https://mp2.dk/techblog/chowjs/) — It’s not every week we get to mention a new JavaScript engine. This post explains why another one is needed to run on gaming hardware in particular and how ChowJS fills a gap. Unfortunately it’s not open source. 

Mathias Kærlev (MP2)   [![\](https://copm.s3.amazonaws.com/b74fd32e.jpg)](https://fusionauth.io/resources/modern-guide-oauth-ebook/?mtm_campaign=jsweekly_source=email&mtm_medium=ppc) 

[The Modern Guide to OAuth](https://fusionauth.io/resources/modern-guide-oauth-ebook/?mtm_campaign=jsweekly_source=email&mtm_medium=ppc) — Another OAuth Guide? Well yes, but... This guide covers all of the ways that FusionAuth actually uses OAuth. Become an expert without having to read all the specifications or write your own OAuth server. Get it for free today. 

FusionAuth sponsor   

[Deno 1.14 Released](https://deno.com/blog/v1.14) — From engines and on to runtimes.. Deno has been making small but steady improvements over the past year and the latest point release is no different: 

- [TypeScript 4.4](https://devblogs.microsoft.com/typescript/announcing-typescript-4-4/) support, and V8 9.4.
- Many [Web Crypto API enhancements](https://deno.com/blog/v1.14#web-crypto-api-additions).
- A new way to [match URLs against patterns](https://deno.com/blog/v1.14#urlpattern). Hacker News had a nice [little Deno discussion going on](https://news.ycombinator.com/item?id=28550339) this week as well covering why people are using it, their experiences, etc. 

The Deno Team   

**QUICK BITS:** 

- The [pipe operator (`|>`) proposal](https://github.com/tc39/proposal-pipeline-operator) is coming along nicely.
- [Nuxt 3](https://nuxtjs.org/v3/), the next version of the popular Vue framework, is coming in about 3 weeks.
- [Fable 3.3](https://fable.io/blog/2021/2021-09-17-JS-decorators-Fable-3-3.html), the latest version of a F# to JavaScript transpiler, is out with JS decorators support (though they don't compile _to_ JS decorators, for reasons explained in [the post](https://fable.io/blog/2021/2021-09-17-JS-decorators-Fable-3-3.html)).
- Eric Elliott is back [talking about software deadlines](https://medium.com/javascript-scene/demos-over-deadlines-8ed8dcdecb6) and recommends focusing on _demos_ over deadlines.   

**RELEASES:** 

[MUI 5.0](https://github.com/mui-org/material-ui/releases/tag/v5.0.0) – Material UI components for React.
 [jsPDF 2.4](https://github.com/MrRio/jsPDF/releases/tag/v2.4.0) – Client side PDF generation library.
 [Node.js v16.9.1](https://nodejs.org/en/blog/release/v16.9.1/) – Fixes a small V8 regression.
 [Kap 3.4.0](https://github.com/wulkano/Kap) – Screen recorder built with JS.
 [NVM for Windows 1.1.8](https://github.com/coreybutler/nvm-windows) – Node.js version management utility.
 [Espree 9.0](https://github.com/eslint/espree/releases/tag/v9.0.0) – Pure JS JavaScript parser.    

💻 Jobs  

[Find JavaScript Jobs with Hired](https://hired.com/join/?utm_source=newsletter&utm_medium=sponsor&utm_campaign=%28b2c%29%28l-all%29%28r-all%29%28cooper-javascriptweekly%29&utm_content=find-your-next-job) — Create a profile on Hired to connect with hiring managers at growing startups and Fortune 500 companies. It's free for job‑seekers. 
Hired    

📖 Tutorials, Opinions & Stories  

[How to Record Audio Using the MediaStream API](https://www.sitepoint.com/mediastream-api-record-audio/) — A practical introduction to using the Media Capture and Streams API to record audio from an end user’s microphone then do something with it. 

Shahed Nasser   

[Small Bundles, Fast Pages: What To Do With Too Much JavaScript](https://calibreapp.com/blog/bundle-size-optimization) — The less JavaScript there is to run, the quicker it will run (you hope)! Bundle size matters and this post touches on a few ways to monitor and improve it. 

Ben Schwarz (Calibre)   

[Announcing JavaScript Security Sessions at SnykCon | Register For Free](https://hopin.com/events/snykcon-2021/?utm_source=CP-Javascript-Weekly&utm_medium=Paid-Email&utm_campaign=Event-SnykCon-2021&utm_content=SnykCon-Agenda) — Learn about malicious npm packages & npm dependency confusion attacks at SnykCon. Join us for free on Oct 5-7. 

Snyk.io sponsor   

[An Intro to D3.js (Covering v5-v7)](https://yangdanny97.github.io/intro-to-d3/) — A fork of Square’s [Intro to D3.js](https://square.github.io/intro-to-d3/) introduction but updated to modern D3.js standards. Let’s get visualizing. 

Danny Yang and Square   

▶[Fastify in One Minute](https://www.youtube.com/watch?v=YxiWBFQUwCQ) — This isn’t one of those ultra high level videos where you see nothing useful - it’s fast paced and code-first, all in one minute. And it might convince you to give [Fastify](https://www.fastify.io/), a Node.js webapp library, a go for your next HTTP API/webapp. 

KapyDev   

[Using RTK Query in React Apps](https://www.toptal.com/react/redux-toolkit-and-rtk-query) — Inspired by React Query, RTK Query lets you have similar functionality, but with Redux. 

Gurami Dagundaridze   

[Generating PDF from HTML in React: An Example of Exporting Data Grids](https://www.telerik.com/blogs/generating-pdf-html-react-example-exporting-data-grids?utm_medium=cpm&utm_source=jsweekly&utm_campaign=kendo-ui-react-blog-generating-pdf-in-react-easy) — Let's go deep into the PDF rendering labyrinth, in the safe hands of a guide, and export some advanced UI components. 

Progress KendoReact sponsor   

[Pre-Selling a Programming Course and Making $550k in Revenue](https://www.failory.com/interview/css-for-js-developers) — If you liked the [recent story about the creator of Vuetify](https://www.starterstory.com/stories/i-built-a-300k-year-vue-js-component-library) making serious income from his efforts, maybe you’ll enjoy that of Josh Comeau (the author of '_CSS for JavaScript Developers_') too. 

Failory   

[How to Automate UI Tests with GitHub Actions](https://storybook.js.org/blog/how-to-automate-ui-tests-with-github-actions/) 
Varun Vachhar (Storybook)   

[Handling Shadow DOM in Protractor Tests](https://engineering.wingify.com/posts/handling-shadow-dom-in-protractor/) 
Punit Goswami (Wingify)  

🛠 Code & Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/v1631712940/a4mnnc9aa1bfhe3vvwfo.png)](https://github.com/i5ik/jspaint.exe)   

[JSPaint.exe: The Classic MS Paint as a Cross-Platform Native Desktop App](https://github.com/i5ik/jspaint.exe) — Based on the older [JS Paint](https://github.com/1j01/jspaint) project then ported to a cross-platform app using [GRaderJS](https://github.com/i5ik/graderjs) (which is worth checking out on its own merits). 

Dosyago Corp.   

[Linkify 3.0: Detect URLs and Email Addresses in Plain Text](https://github.com/Hypercontext/linkifyjs) — Given some plain text containing things like links and emails, Linkify will generate the correct code to display it on the Web. [Demo](https://linkify.js.org/#demo). 

Hypercontext   

[Tasuku (タスク): A Minimal Task Runner for Node](https://github.com/privatenumber/tasuku) — Tasuku, which is simply Japanese for ‘task’, provides a clean way to break up processes into small tasks which can then be run in the right order with progress displayed elegantly in the terminal. Check out the succinct README. 

hiroki osame   

[Observability Won't Replace Monitoring (Because It Shouldn't)](https://go.lightstep.com/register-observability-replace-monitoring-co?utm_campaign=js&utm_source=cooper&utm_medium=Email) 

Lightstep sponsor   

[Lowdb 3.0: A Small Local JSON Database](https://github.com/typicode/lowdb) — Supports Node, Electron _and_ the browser, and might be suited if you want a very lightweight data store you can query with pure JS. 

typicode   

[svg2pdf.js: Browser Based SVG to PDF Converter](https://github.com/yWorks/svg2pdf.js) — There’s an [online playground](http://raw.githack.com/yWorks/svg2pdf.js/master/) to give you a feel for what it can do. 

yWorks GmbH   

[Atrament.js 2.0: A Library for Smooth Drawing on HTML Canvas](https://github.com/jakubfiala/atrament.js) 
Jakub Fiala   

[Tethr: A Library Built on WebUSB for Controlling Digital Cameras](https://github.com/baku89/tethr) 
Baku 麦    

“I apologize for writing a complicated program. I didn't have time to write a simple one.” 

___
Tim Sweeney ([via Twitter](https://twitter.com/TimSweeneyEpic/status/1434925941944356864))          

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
