---
title: "Flappy bird written in Node"
publication: "Node Weekly"
issue: 373
published_at: "2021-01-28"
canonical_url: "https://nodeweekly.com/issues/373"
---

Plus writing Node extensions in Nim, Node 15.7.0, and a fast XML parser. |        

#373 — January 28, 2021 

[Read on the Web](https://nodeweekly.com/issues/373)   

Node Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/lj9wyj67cflnq1bugx07.jpg)](https://nodejs.medium.com/have-20-minutes-take-the-node-js-2021-user-survey-b4a9ee7eb878)  

[It's Time to Take the Node.js 2021 User Survey](https://nodejs.medium.com/have-20-minutes-take-the-node-js-2021-user-survey-b4a9ee7eb878) — The Node.js team has announced the opening of the 2021 Node.js user survey and you can [take it here](https://www.surveymonkey.com/r/7BYTZMS) – the deadline is February 15 but we’ll do another reminder before then. Don’t forget to mention us when they ask where you heard about the survey from 😄 The [results from last time (PDF)](https://nodejs.org/en/user-survey-report/2018-nodejs-user-survey-report.pdf) (in 2018) taught us all kinds of things, and it'll be interesting to see the shifts since then. 

Node.js Project   

[parse-xml 3.0: A Fast, Compliant XML Parser](https://github.com/rgrove/parse-xml) — The goal with this project was to be fast, robust with good error handling, and to have no native dependencies. v3.0.0, which has [just dropped](https://github.com/rgrove/parse-xml/releases/tag/v3.0.0), includes a brand new parser and supports Node 12+. 

Ryan Grove   [![\](https://copm.s3.amazonaws.com/a453d236.png)](https://dashboard.redisgreen.net/nodeweekly) 

[Track Redis Memory Use with RedisGreen](https://dashboard.redisgreen.net/nodeweekly) — RedisGreen monitors the largest keys in your database over time, and builds a visual guide of which keys use the most memory. With SSL encryption and online upgrades to support your app from dev to prod. 

RedisGreen sponsor   

[Cypress vs Selenium vs Playwright vs Puppeteer Speed Comparison](https://blog.checklyhq.com/cypress-vs-selenium-vs-playwright-vs-puppeteer-speed-comparison/) — If you’ve got some browser automation to do, particularly around testing, you now have quite a few options, but how do they compare in terms of speed? Spoiler: [Playwright](https://github.com/microsoft/playwright) comes out of it looking very good. 

Giovanni Rago (Checkly)   

[Node v15.7.0 (Current) Released](https://nodejs.org/en/blog/release/v15.7.0/) — Nothing big, but [Blob](https://github.com/nodejs/node/pull/36811) has been introduced to `buffer` as a first step to aligning with the [Blob Web API](https://developer.mozilla.org/en-US/docs/Web/API/Blob) and there’s now a [`base64url` Buffer encoding option](https://github.com/nodejs/node/pull/36952). 

Ruy Adorno   

[Deno 1.7 Released](https://deno.land/posts/v1.7) — Node’s younger cousin comes boasting new features and improvements. A big update is that `deno compile` (which lets you compile complete JavaScript apps to a single executable) is more efficient with support for cross compilation and ~60% reduced compiled size. → _[Via our Deno newsletter](https://denoweekly.com)_. 

Bartek Iwańczuk and Luca Casonato  

💻 **Jobs**  

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

X-Team   

[Find Your Next Job Through Hired](https://hired.com/join/?utm_source=newsletter&utm_medium=sponsor&utm_campaign=%28b2c%29%28l-all%29%28r-all%29%28cooper-nodeweekly%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 and Stories**  

[Practical Aspect Oriented Programming in JavaScript](http://thecodebarbarian.com/practical-aspect-oriented-programming-in-javascript.html) — [Aspect oriented programming](https://en.wikipedia.org/wiki/Aspect-oriented_programming) is a modular coding technique where existing code is embellished or extended rather than modified. This is a _very_ brief JS-oriented overview. 

Valeri Karpov   

[Capturing Hacker News Mentions with Node and MongoDB](https://www.thepolyglotdeveloper.com/2021/01/capturing-hacker-news-mentions-nodejs-mongodb/) — If you don’t want to _read_ the ‘[orange site](https://news.ycombinator.com/)’ (as it’s often called) but you’d like to know if something gets mentioned there, here’s one option. 

Nic Raboy   

[Testing Sails Applications with Mocha and SuperTest](https://blog.sailscasts.com/testing-sails-applications-with-mocha-and-super-test/) — [Sails](https://sailsjs.com/) is a popular MVC framework. 

Kelvin Omereshone   

[The Ultimate Guide to Cardinality for Observability](https://go.lightstep.com/register-guide-to-cardinality-co21.html?utm_campaign=node&utm_source=cooper&utm_medium=Email) 

Lightstep sponsor   

[Migrating Puppeteer to TypeScript](https://developers.google.com/web/updates/2021/01/puppeteer-typescript) — A Googler reflects on how the Puppeteer team are migrating the project over to TypeScript. 

Jack Franklin (Google)   

[A Possible LFR and RCE Vulnerability If Using Express with Handlebars via `hbs`?](https://blog.shoebpatel.com/2021/01/23/The-Secret-Parameter-LFR-and-Potential-RCE-in-NodeJS-Apps/) — Note: This is a last minute addition that we have not verified. 

Captain Freak   

[Docker for Node.js Developers: 5 Things You Need to Know](https://snyk.io/blog/docker-for-node-js-developers-5-things-you-need-to-know/) 

Liran Tal (Snyk)     

🛠 Code and Tools   

supported by [![Okta\](https://res.cloudinary.com/cpress/image/upload/v1602154330/de7dtktheistsfpqdem4.png)](https://developer.okta.com/?utm_campaign=newsletter_cooperpress_all_multiple_inc_dev_sponsored-section_null&utm_source=cooperpress&utm_medium=cpc)     

[napi-nim: How to Write Native Node Extensions in Nim](https://github.com/andi23rosca/napi-nim#write-nodejs-native-extensions-in-nim) — Is C too verbose, C++ too complicated, and you’re just not feeling Rust? [Nim](https://nim-lang.org/) is a relatively friendly compiled systems language you can use to build Node extensions instead, as seen here, though it’s still early days for this project. 

Andi Rosca   

[A Flappy Bird Clone using Raylib](https://github.com/arthurmassanes/flappy) — It’s not often we see native games written in Node so if it’s something you fancy trying, this code may intrigue you. It leans on [Raylib](https://www.raylib.com/), a C-based library for building basic games and graphical experiments. 

Arthur Massanes   

[Video for Your Node App That Streams Beautifully, Everywhere](https://get.mux.com/3kTeOP8) — Full-featured API that lets you build beautiful video for your Node app. 

Mux sponsor   

[Middy 2.0 Now in Alpha: Node Middleware for AWS Lambda](https://github.com/middyjs/middy/releases/tag/2.0.0-alpha.1) — A middleware engine to simplify your AWS Lambda code when using Node. The project is also [seeking help](https://github.com/middyjs/middy/issues/589) with improving TypeScript support. 

Middy   

[string-similarity: Finds Degree of Similarity Between Two Strings](https://github.com/aceakash/string-similarity) — Uses the [_Sørensen–Dice coefficient_](https://en.wikipedia.org/wiki/S%C3%B8rensen%E2%80%93Dice_coefficient) which is better than Levenshtein distance for many use cases. 

Akash K   

[Opus 0.4: Native Opus Bindings for Node](https://github.com/discordjs/opus) — Bindings for `libopus`, a library for working with the Opus lossy audio codec. 

Discord.js Team   

[Trilium Notes: A Knowledge Base App Built on Express.js](https://github.com/zadam/trilium) — A hierarchical note taking app. Built as an Express app but also includes Electron packaging. 

zadam    

**Got a new email?** You can [change your address here](https://nodeweekly.com/edit_subscription/*|UID|*). 

--- 

**Bored of us?** [Click here to stop getting Node Weekly](https://nodeweekly.com/leave/*|UID|*). 

--- 

**Got a link for us?** Reply and tell us. We can't include everything but we'll look at anything you send. Thanks! 

--- 

**Want to sponsor?** Email `[kristina@cooperpress.com](mailto:kristina@cooperpress.com)` for details. 

--- 

Published by Cooper Press Ltd.
Fairfield Enterprise Centre, Louth, LN11 0LS, United Kingdom 

[Stop getting this newsletter.](https://nodeweekly.com/leave/*|UID|*)
