---
title: "Pixi.js 5.0, Node 12.3, and using `reduce` for more than adding numbers"
publication: "JavaScript Weekly"
issue: 438
published_at: "2019-05-24"
canonical_url: "https://javascriptweekly.com/issues/438"
---

This week's JavaScript news       

#438 — May 24, 2019 

[Read on the Web](https://javascriptweekly.com/issues/438)   

📝 No _huge_ news this week (unless you're [an Ember fan](https://blog.emberjs.com/2019/05/21/ember-3-10-released.html) — and you should be!) but lots of neat bits and pieces to skim — enjoy :-) _Your editor, [@peterc](https://twitter.com/peterc)._  

JavaScript Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/v1558715625/kfxegdrjotvjgynehknu.png)](https://jrsinclair.com/articles/2019/functional-js-do-more-with-reduce/)   

[Functional JavaScript: How to Use `reduce` for More Than Just Numbers](https://jrsinclair.com/articles/2019/functional-js-do-more-with-reduce/) — Eric Elliott calls it _“one of the most versatile functions that was ever discovered”_ but a lot of developers struggle with `reduce` beyond basic use cases. If that includes you, this tutorial goes into more depth. 

James Sinclair   

[Pixi.js 5.0: Create Beautiful 2D Web Experiences](https://github.com/pixijs/pixi.js) — Boasts the ‘fastest, most flexible 2D WebGL renderer’ to let you take advantage of hardware acceleration without getting involved in WebGL or 3D concerns. Check out [demos](https://pixijs.io/examples/#/demos-basic/container.js) for what the code looks like and what you’d use it for. There’s also a [Pixi Playground](https://www.pixiplayground.com/#/edit) for quickly crafting your own experiments. 

PixiJS   [![\](https://copm.s3.amazonaws.com/5f51cf2b.png)](https://buddy.works/?utm_source=sscpjw&utm_campaign=sscpjw2405&utm_content=p) 

[Get the Fastest App Deployments. Get Started Free](https://buddy.works/?utm_source=sscpjw&utm_campaign=sscpjw2405&utm_content=p) — Unlike most Continuous Integration (CI) solutions, Buddy only re-builds the parts of your application that have changed and deploys your updates in seconds to any app store. Start building better apps faster with Buddy. 

Buddy sponsor   

[Tornis: Watch and Respond to Changes in the Browser's Viewport](https://tornis.robbowen.digital/) — A JavaScript library that tracks pointer position, viewport size, scroll position, etc. and lets you perform actions based upon them. 

Robb Owen   

[Node 12.3 Released with WebAssembly Module Support](https://nodejs.org/en/blog/release/v12.3.0/) — It’s experimental, but use `--experimental-wasm-modules` to be able to do, say, `import './module.wasm'`. Here’s [some documentation on how they work](https://github.com/nodejs/node/blob/bbc254db5db672643aad89a436a4938412a5704e/doc/api/esm.md) if you want to give it a try at this early stage. 

Node.js Foundation   

[WebAssembly at eBay: A Real-World Use Case](https://www.ebayinc.com/stories/blogs/tech/webassembly-at-ebay-a-real-world-use-case/) — Notes on how the eBay engineering team approached building a better barcode scanner using WebAssembly to replace a pure JavaScript version. 

eBay Engineering   

[JavaScript _Clean Code_: Some Best Practices](https://devinduct.com/blogpost/22/javascript-clean-code-best-practices) — You might not sign up for _all_ of them (particularly those around classes and inheritance), but these ‘Uncle Bob’-inspired tips might help you think more about how you name things and structure your code. 

Milos Protic  

💻 Jobs  

[Front-End Engineer - Apple Inc. (CA, US)](https://ars2.equest.com/?response_id=722f08cf74cb835f395bb9764d32ff41) — Love the challenge of solving complex problems? Be part of a team with strengths crafting JavaScript apps for iCloud Analytics. 

Apple   

[Product-Focused & Driven Frontend Engineers in Stockholm](https://careers.dietdoctor.com/jobs/196340-frontend-engineer?promotion=81764-trackable-share-link-frontendweekly-newsletter) — Join our 30-person team of A-players, solve problems at global scale & help us become the most trustworthy online health company. 

Diet Doctor Sweden AB   

[Find a JavaScript Job on Vettery](https://www.vettery.com/tech?utm_source=newsletter&utm_medium=cooper-javascriptweekly&utm_term=tech&utm_content=grouped&utm_campaign=ad-77584) — Vettery specializes in tech roles and is completely free for job seekers. 

Vettery  

📘 Tutorials, Opinions, and Videos 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/v1558721456/kc42xiwk99klcdomn5sy.png)](https://hackernoon.com/create-javascript-sankey-diagram-b68c0d508a38)  

[How to Create Interactive Sankey Diagrams with JavaScript](https://hackernoon.com/create-javascript-sankey-diagram-b68c0d508a38) — A Sankey diagram uses snake-like lines to show changes or 'flows' in data formations (e.g. how a distribution of votes changed between two elections). 

Alfrick Opidi   

[Vue.js and SEO: How to Optimize Reactive Sites for Search Engines](https://www.smashingmagazine.com/2019/05/vue-js-seo-reactive-websites-search-engines-bots/) — Are sites created with front-end rendered frameworks indexed by Google? Or do you need to set up pre-rendering? Paolo performed an experiment to see the reality. 

Paolo Mioni   

[Truly Reactive Programming with Svelte 3.0](https://blog.logrocket.com/truly-reactive-programming-with-svelte-3-0-321b49b75969) — The latest release of Svelte, a _compile_-time Web framework, seems to have really struck a chord with developers. 

Ovie Okeh   

[See Why 1.2M Developers Are Building With Mapbox GL JS](https://ad.atdmt.com/c/img;adv=11202207643724;ec=11202219864074;c.a=paid|cooperpress|brand|chko-sponsorship-pr01-javascriptweekly1-pros-all-landingpage-text;p.a=paid|cooperpress|brand|chko-sponsorship-pr01-javascriptweekly1-pros-all-landingpage-text;a.a=paid|cooperpress|brand|chko-sponsorship-pr01-javascriptweekly1-pros-all-landingpage-text;s.a=cooperpress;as.a=paid|cooperpress|brand|chko-sponsorship-pr01-javascriptweekly1-pros-all-landingpage-text;idfa=;idfa_lat=;aaid=;aaid_lat=;cache=;qpb=1;?h=https://www.mapbox.com/maps/?utm_medium=paid&utm_source=cooperpress&utm_campaign=paid|cooperpress|brand|chko-sponsorship-pr01-javascriptweekly1-pros-all-landingpage-text&utm_term=brand&utm_content=chko-sponsorship-pr01-javascriptweekly1-pros-all-landingpage-text) — Mapbox is making it easier than ever to build, implement, and render amazing maps across mobile and web projects. 

Mapbox sponsor   

[How to Build a Tic Tac Toe App with TypeScript, React and Mocha](https://blog.bitsrc.io/build-a-tic-tac-toe-game-with-typescript-react-and-mocha-ce6f1e74c996) — Learn how to compose a tic-tac-toe app with React and TypeScript components. 

Josh Kuttler   

[Three.js Fundamentals: A Tutorial](https://threejsfundamentals.org/threejs/lessons/threejs-fundamentals.html) — This is a _very_ extensive and impressive set of tutorials on using [Three.js](https://threejs.org/) to create browser-based 3D experiences. 

Greggman   

[Approaches to Handling Errors in Vue.js Apps](https://www.raymondcamden.com/2019/05/01/handling-errors-in-vuejs) 

Raymond Camden  

🔧 Code and Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/v1558713232/c99tajrpba7bsow1u64h.png)](https://roughjs.com/)  

[Rough.js: Draw Web Graphics with a Hand-Drawn, 'Sketchy' Appearance](https://roughjs.com/) — Supports both drawing on Canvas or using SVG. Yes, it's a classic, but it keeps getting updates.. most recently with support for dashed, sunburst, and zig-zag fills. 

Preet Shihn   

[A Much Faster Way to Debug Code Than with Breakpoints or console.log](https://wallabyjs.com/?utm_source=javascriptweekly&utm_medium=sponsored_newsletter&utm_campaign=javascriptweekly&utm_content=javascriptweekly) — Wallaby catches errors in your tests and code and displays them right in your editor as you type, making your development feedback loop more productive. 

Wallaby.js sponsor   

[reLift-HTML: A Very Light Way to Create Web Components and Add Reactivity to Pages](https://relift-html.js.org/) — Boasting that it has no dependencies, no virtual DOM ([some people like this idea](https://svelte.dev/blog/virtual-dom-is-pure-overhead)), and needs no build tool, this is an interesting project that brings together several modern Web technologies in a very vanilla JS way. 

reLift-HTML   

[v8n: A 'Fluent Validation' Library](https://github.com/imbrn/v8n) — Chain together rules to make validations, e.g. `v8n().some.not.uppercase().test("Hello");` 

Bruno C. Couto   

[AST Explorer: Analyze the Structure of Parsed JavaScript Online](https://astexplorer.net/) — A neat little Web-based tool to see how supplied JavaScript code gets parsed into a syntax tree. 

Felix Kling   

[Material-UI 4.0: Google Material Design-Inspired React Components](https://github.com/mui-org/material-ui) 

Material-UI   

[await-timeout: A Promise-Based API for `setTimeout` and `clearTimeout`](https://github.com/vitalets/await-timeout) 

Vitaliy Potapov   

[Safely Roll Out Features in JavaScript with Free Feature Flags](https://www.optimizely.com/rollouts-signup/?utm_source=javascriptweekly&utm_medium=paid&utm_campaign=2019_05_optimizely_rollouts_javascriptweekly_bl) 

Optimizely Rollouts sponsor   

[Reveal.js 3.8.0: An HTML Presentation Framework](https://github.com/hakimel/reveal.js) — A now mature framework that continues to get frequent updates and releases. 

Hakim El Hattab   

[Ember 3.10 Released](https://blog.emberjs.com/2019/05/21/ember-3-10-released.html) 

Kenneth Larsen and Jessica Jordan         

Curated by [Cooperpress](https://cooperpress.com/) and [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
