Top posts
Every blog post that took off on Hacker News, ranked by the votes of its best submission. 14,546 posts.
Generalizing JSX: Delivering on the Dream of Curried Named Parameters
We deconstruct JSX to create a new general purpose programming tool.
Lil: A Scripting Language
Lil is part of the technology that powers Decker , a multimedia creative tool inspired by HyperCard . Decker uses Lil for adding custom behavior to decks and the widgets within. Lil is designed to be learned in layers, but it is a richly multi-paradigm language which incorporates ideas from imperative, functional…
Enquire: Everything you wanted to know about your C compiler and machine
This is a program that determines many properties of the C compiler and machine that it is run on, such as minimum and maximum [un]signed char/int/long, many properties of float/ [long] double, and so on.
Integrated assembler improvements in LLVM 19
Within the LLVM project, MC is a library responsible for handling assembly, disassembly, and object file formats. Intro to the LLVM MC Project, which was written back in 2010, remains a good source to understand the high-level structures. In the latest release cycle, substantial effort has been dedicated to refining…
Trivia About Rust Types
Preface (by Jimmy Hartzell) I am a huge fan of Jon Gjengset’s Rust for Rustaceans, an excellent book to bridge the gap between beginner Rust programming skills and becoming a fully-functional member of the Rust community. He’s famous for his YouTube channel as well; I’ve heard good things about it (watching video…
On meta-design and algorithmic design systems
The rise of the meta-designer, and the use of algorithmic design systems.
Back Row
Back Row is a private framework used in the Apple TV user experience. Rather than waiting for Apple to open up the Apple TV SDK, one can take matters into their own hands.
Automatic Video Editing
Amongst the many consequences of COVID-19 has been the suspension of in-person talks: suddenly, people like me have had to think about how to produce prerecorded videos. In this article I’m going to explain what I’ve come to understand about video recording and the “automatic video editing” technique I’ve used for…
Pick Your Distributed Poison
One of the hardest things for people to understand with distributed systems is that eventual consistency is the same thing as eventual inconsistency. The very...
Ray Tracing in One Weekend
The books are now available in unprotected pdf for PAY WHAT YOU WISH, with 50% going to not for profit programming education organizations. ...
Extending That XOR Trick to Billions of Rows
Learn how to extend the classic XOR trick to find thousands of missing values using Invertible Bloom Filters
I wrote a Pong game in a 512-byte boot sector
written by - Akshat Joshi Sometime back, I set myself a crazy constraint: Load only one thing at boot - A Pong game that fits in one floppy disk sector — 512 bytes. Why would I build this? I have played with Operating Systems and their workings by customizing them and tweaking their
How to design co-programs
I recently attended the Matthias Felleisen Half-Time Show, a symposium held in Boston on 3rd November in celebration of Matthias’s 60th birthday. I was honoured to be able to give a talk ther…
Building better software with better tools: sanitizers vs. Valgrind
We often have to write code using permissive programming languages like C and C++. They tend to generate hard-to-debug problems that can crash your applications. Thankfully, many compilers offer "sanitizers". I discussed them in my post No more leaks with sanitize flags in gcc and clang. I strongly encourage the use…
Modern C++ for C Programmers
2018 is an exciting time to be a programmer, with so many good “full service” programming languages to choose from: C, C++ 2017, Go, Python, Rust and who knows Swift too. Programming languages are complicated beasts - even the simplest languages have specifications that run (or would run) in the hundreds of pages, and…
Mergeable replicated data types – Part I
Mergeable replicated data types Kaki et al., OOPSLA’19 This paper was published at OOPSLA, but perhaps it’s amongst the distributed systems community that I expect there to be the greatest in…
Porting a Chrome Extension to Firefox
Shing Lyu's blog
Monads in Scheme
An example of a monadic programming in Scheme that juxtaposes Haskell code for a state monad with the corresponding Scheme code.
Implementing the Goodfellow GANs paper
Generative Adversarial Networks (GANs), discovered by Ian Goodfellow in 2014, were an early method in the area of generative AI. I will focus on image generation as set out in the paper Generative Adversarial Nets 1 . This paper is the focal point of the post, I will guide you through the implementation of the paper…
Playing with genetic algorithms in Python
Edit: This post made it to the front page of Hacker News! You can find the discussion here.
The limitations of sampling profilers
Perf is probably the most widely used general purpose performance debugging tool on Linux. There are multiple contenders for the #2 spot, and, like perf, they're sampling profilers. Sampling profilers are great. They tend to be easy-to-use and low-overhead compared to most alternatives. However, there are large…
How much memory does a graph take?
We need a fast way to query multiple potentially large sets of data on-demand at interactive speeds. Sometimes the easiest solution to a hard problem is to build the right tool for the job.
Boosting zopfli performance
Introduction Deflate compression has been around for over 20 years. It's the format used inside most ZIP files. It's used by HTTP to redu...
What Alan T. did for his PhD
We’ve all been there before: by the time you start graduate school in Princeton, you’ve already invented the Turing machine, pioneered the concept of computational universality, and pro…