New
The latest blog posts to take off on Hacker News. 1,551 posts.
Experience Report: 6 months of Go
A report of my positive and negative experiences with Go after using it for 6 months at work.
A Rust match made in hell
I often write pieces that showcase how well Rust can work for you, and how it can let you build powerful abstractions, and prevents you from making a bunch of mistakes. If you read something like S...
Best practices for optimizing Lambda functions
Learn how to get the most out of your serverless functions
Zaplib post-mortem
Welp, this is a weird blog post! Very unexpectedly, we quickly invalidated some of the core hypothesis that make Zaplib work as a startup.
PipeWire: Bluetooth Support Status Update
Over the last two years, Bluetooth® audio support has steadily grown in PipeWire. Here's a look at where things stand.
Why train when you can optimize?
Multi-variable optimization is an incredibly useful tool for writing software. It allows you to specify a desired result and delegate finding the solution to a reliable algorithm. If you know what you want but not how to get it, optimization can probably help. Problems with many interacting variables that are…
Lies we tell ourselves to keep using Golang
In the two years since I’ve posted I want off Mr Golang’s Wild Ride, it’s made the rounds time and time again, on Reddit, on Lobste.rs, on HackerNews, and elsewhere. And every time, it elicits the ...
You Should Compile Your Python and Here’s Why
write Python that’s faster than C by optimizing your code, adding standard type annotations, and using Mypyc.
Crafting Interpreters
We’ll spend the rest of this book illuminating every dark and sundry corner of the Lox language, but it seems cruel to have you immediately start grinding out code for the interpreter without at least a glimpse of what we’re going to end up with.
Tackling multiple tasks with a single visual language model
We introduce Flamingo, a single visual language model (VLM) that sets a new state of the art in few-shot learning on a wide range of open-ended multimodal tasks.
I want off Mr. Golang’s Wild Ride (2020)
My honeymoon with the Go language is extremely over. This article is going to have a different tone from what I’ve been posting the past year - it’s a proper rant. And I always feel bad writing tho...
Making Faster B-Trees with Go Generics
Go generics are a new way to improve performance in golang. Let’s see what effect generics had on Google’s B-tree implementation.
Running Containers on AWS Lambda
Learn how to run containers on AWS Lambda and leverage the scalability and cost-saving benefits of serverless computing. This article explores the ...
So Long Surrogates: How We Moved to UTF-8 in Haskell
We illustrate how we implemented UTF-8 support in alfred-margaret and give some insights into how we optimized our Haskell code for performance.
Introduction to Haskell Typeclasses
In this article, we introduce you to typeclasses in Haskell: what they are, how they can be used, and how to define your own instances of typeclasses.
Four Eras of JavaScript Frameworks
From jQuery widgets to the first frameworks, component-centric view layers like React, and today's full-stack frameworks: a look back at each era of JavaScript development and what it taught us.
How to write a Git commit message (2014)
Commit messages matter. Here's how to write them well.
Slack’s Incident on 2-22-22
By Laura Nolan, with contributions from Glen D. Sanford, Jamie Scheinblum, and Chris Sullivan. Assessing conditions Slack experienced a major incident on February 22 this year, during which time many users were unable to connect to Slack, including the author — which certainly made my role as Incident Commander more…
Type-Based Optimizations in the JIT
The official home of the Erlang Programming Language
GraalVM 22.1: Developer experience improvements, Apple Silicon builds, and more
Today we’re releasing GraalVM 22.1! This release brings new features and lots of improvements — we’ll cover the highlights in this blog…
Effective Go
Go is an open-source programming language that focuses on simplicity, reliability, and efficiency, specifically designed to make it easy to build software at scale. Although it borrows ideas from existing languages, it has unusual properties that make effective Go programs different in character from programs written…
Implementing a safe garbage collector in Rust
In my last post I introduced an Emacs Lisp VM I was writing in Rust. My stated goal at the time was to complete a garbage collector. I think Rust has some really interesting properties that will make building garbage collectors easier and safer. Many of the techniques used in my GC are not original and have been…
Compile time evaluation in Nim, Zig, Rust and C++
Evaluating code at compile time is a capability that most, if not all, compiled programming languages possess, even if it can't be directly used by the programmer, but rather applied as an optimization. In this post, we'll explore a bit how to execute code at compile time in Nim, Zig, Rust and C++.
Sorbet and 100% cov makes Ruby refactoring possible
Safely refactoring Ruby traditionally involves many incremental steps and feature flags. Sorbet and 100% branch coverage make it possible to refactor a lot of code safely.
Datalog in JavaScript
Let's build a query engine from scratch. In about 100 lines of Javascript, we'll support joins, indexes, and find our answer for Arnold!