Aaron Turner
WebAssembly for Javascript Developers
This talk covers the learnings and experiences of developing WasmBoy. A Game Boy Emulation Library for running Game Boy ROMs in both NodeJS and browsers, written in AssemblyScript.
This talk covers the learnings and experiences of developing WasmBoy. A Game Boy Emulation Library for running Game Boy ROMs in both NodeJS and browsers, written in AssemblyScript.
You've probably heard, and possibly lamented, that Node.js is single threaded. It's true that all JavaScript executed by Node.js is run in a single thread. This means each JavScript file you write, module you require, and even Node.js itself, all contend for processing time. But JavaScript isn't the only code in Node.js. There's also a lot of C++, most important of which is the event loop. One of the event loops responsibilities is to manage a set of threads called the thread pool. As it turns out, most C++ code in Node.js is multithreaded! Come learn how the event loop works in detail, how it affects the performance of your app, and how you can use this knowledge to your advantage!
At a coding bootcamp, you have 3 months to go from zero to dev. Without feeling empowered by a culture of psychological safety to ask all the questions, make mistakes, and sometimes fail hard, you would never learn what you needed in the time given. Imagine if all of the spaces we inhabit as coders throughout our careers - the communities we're part of, the companies we work at, the teams we’re on - offered this environment? How much more would we learn and contribute? This talk offers insight from my time at Founders & Coders: how we achieved this culture; what we did right and wrong; how you can translate our cohort's experiences into actions; and how deliberately building a culture of psychological safety can improve the communities, teams, and companies you’re a part of.
A lot of people dislike CSS for no reason, either one did not take the time to learn the fundamentals as they did with JavaScript, or sometimes one just don't know about specific superpowers of CSS. Let's take 10 minutes to quickly go through crucial CSS fundamentals and dive into some nifty techniques for your next front-end adventures.
Frontend apps are on the cusp of a revolution—React is about to launch a streaming server renderer that massively improves performance on both low-end and high-end devices. It's a new dawn for performance & accessibility, but raises another question? How should we host the server component? Can we do that without vendor lock-in? Enter FABs (Frontend Application Bundles), a portable, compact, immutable, server-side JS format that lets you deploy anything from static sites or Next.js to full custom server-rendered React apps anywhere that can run JS, like Cloudflare Workers, Lambda@Edge, Now, etc. Finally, we can have a toolchain that supports the full breadth of frontend projects & server environments, without locking everything to a single host. My talk aims to draw parallels between the server world of a decade ago & the frontend world of today. In the past, companies like AWS & Heroku were innovating & offering exciting new products, but users had to make a choice of which one to use and lock-in their development to target that platform. Today, it's exciting offerings from platforms like Now and Netlify, but all their innovation is locked down inside their ecosystem. Docker changed that in a profound way, and FABs are poised to do the same thing. So this talk is a prediction of the future—that with React's new streaming renderer, a lot more companies will be looking to add a server-side component, and a standard, interoperable bundle format like FABs makes that much more accessible.
If you’re building applications chances are your dependency tree is in the order of hundreds. That can easily scale up to at least a thousand for large applications (like popular OS projects Ghost or Keystone). Join me in my hindered journey to address a big elephant in the room: managing dependencies. Updating a dependency or following common practices shouldn’t have to be a mysterious thing. What’s the right thing to do in your package.json? Exact versions? Using a caret? What’s the reason behind lockfiles? What type of tooling is out there? I’ll present answers from my research to these common questions.