I’m proud to announce that WebAssembly won the 2021 SIGPLAN Programming Languages Software Award 🎉 🎉 🎉 - I’m happy to accept this award, including the trophy and large novelty-sized cheque, on behalf of the whole community. Thanks, you’re welcome.
Discourse is an open source discussion platform used across many websites. Whilst the primary content type in chat applications is text, pictures also play an important role in online discussions.
In order to optimise the user experience, uploaded content is typically rescaled or re-encoded to save bandwidth. The standard way of tackling this problem is to perform these image optimisation tasks on the server. However, the team at Discourse have been exploring client-side optimisation, using WebAssembly, with the results of this successful experiment shared in this blog post.
WebAssembly threads is a powerful and new addition to the language and runtime, allowing you to run computationally-intensive tasks across multiple CPUs / cores. Notably, WebAssembly doesn’t have the capability to spawn new threads (yet), however, it does have the tool required to run code within a threaded environment, namely shared memory and atomic operations. This blog post provides a useful and practical guide to using these feature.
Lots of love in this post! If you’re not already familiar with them, Jupyter notebooks are an interactive environment that mikes both rich static content (text, images) and code. They are a fantastic tool for data exploration and visualisation, and as a result have become very popular in the data science community.
This post explores how to run the entire stack Jupyter within the browser. This is a very similar idea to Stackblitz, which was featured in issue #150, providing developers (and data scientists) with fully containerised environments where the browser is the VM running the whole stack.
I absolutely love 8bitworkshop, it allows you to write code for old-school consoles such as the Atari 2600 directly within your browser. I used this onlin tool extensively when writing my own 6502 emulator, a project, like so many others, that I didn’t quite finish!