WebAssembly: TinyGo vs. Rust vs. AssemblyScript
A browser sorting benchmark comparing JavaScript, Go, TinyGo, Rust, and AssemblyScript, with source code and test conditions.
The many flavors of hashing
About the many types of hash functions, their use-cases, dos and don'ts, with suggestions for currently accepted algorithms.
My process for building a feature
I’m maintaining a lot of different projects at the moment. I thought it would be useful to describe the process I use for adding a new feature to one of …
Recognize Digits Using ML in Elixir
Machine learning allows you to solve once unimaginable problem. Elixir's support for machine learning through Nx and Axon let us do impressive thing while staying in our favorite language.
Untangling Lifetimes: The Arena Allocator
Making performant dynamic manual memory management in C feel almost like garbage collection.
Why Discord is switching from Go to Rust (2020)
This post explains why Rust made sense for Discord to reimplement: how it was done, and the resulting performance improvements.
Aligning Language Models to Follow Instructions
We’ve trained language models that are much better at following user intentions than GPT-3 while also making them more truthful and less toxic, using techniques developed through our alignment research. These InstructGPT models, which are trained with humans in the loop, are now deployed as the default language models…
Beating the Averages (2001)
April 2001, rev. April 2003 (This article is derived from a talk given at the 2001 Franz Developer Symposium.) In the summer of 1995, my friend Robert Morris and I started a startup called Viaweb . Our plan was to write software that would let end users build online stores. What was novel about this software, at the…
The top programming languages
Explore the top programming languages on GitHub—and what languages are growing the fastest.
Go maps in action
How and when to use Go maps.
Go at Google: Language Design in the Service of Software Engineering
(This is a modified version of the keynote talk given by Rob Pike at the SPLASH 2012 conference in Tucson, Arizona, on October 25, 2012.)
Hey Siri: An On-device DNN-powered Voice Trigger for Apple’s Personal Assistant
The “Hey Siri” feature allows users to invoke Siri hands-free. A very small speech recognizer runs all the time and listens for just those…
Competitive programming with AlphaCode
Solving novel problems and setting a new milestone in competitive programming.
Project Cambria: Translate your data with lenses
Changing schemas in distributed software is hard. Could adopting bidirectional lenses help?
V is for Vaporware
Xe Iaso's personal website.
Using Rust to Scale Elixir for 11 Million Concurrent Users
The Backend Infrastructure team at Discord was hard at work improving the scalability and performance of our core real-time communications infrastructure.
Data Race Detector
Data races are among the most common and hardest to debug types of bugs in concurrent systems. A data race occurs when two goroutines access the same variable concurrently and at least one of the accesses is a write. See the The Go Memory Model for details.
</> htmx ~ When Should You Use Hypermedia?
This essay by Carson Gross explores when to use hypermedia in web development, highlighting its advantages and trade-offs. Carson discusses scenarios where hypermedia is a good fit, such as text and image-heavy UIs, CRUD applications, and nested UIs with well-defined areas. He also addresses when hypermedia may not be…