New
The latest blog posts to take off on Hacker News. 1,551 posts.
“Code” 2nd Edition
I am overjoyed to announce that the 2nd edition of my book Code: The Hidden Language of Computer Hardware and Software will be published by Pearson on August 19, 2022. As you can see, the covers of the two editions are nearly identical except that the 2nd edition uses the “dark mode” option:
Why software engineers like woodworking
The smell of fresh pine sawdust filled the air, with more floating up as I sanded the last rough corner of the stool. My toddler was happily sanding her own block off to the side.
Cranelift, Part 4: A New Register Allocator
This post is the fourth part of a three-part series 1 describing work that I have been doing to improve the Cranelift compiler. In this post, I'll describe the work that went into regalloc2 , a new register allocator I developed over the past year. The allocator started as an effort to port IonMonkey's register…
Techniques for Training Large Neural Networks
Large neural networks are at the core of many recent advances in AI, but training them is a difficult engineering and research challenge which requires orchestrating a cluster of GPUs to perform a single synchronized calculation.
The collapse of complex software
In 1988, the anthropologist Joseph Tainter published a book called The Collapse of Complex Societies. In it, he described the rise and fall of great…
Rust without the async (hard) part
A comparison between async Rust's and lunatic's approach to massive concurrency.
How to build undo/redo in a multiplayer environment by Liveblocks
Notoriously tough to build, undo/redo in a multiplayer environment is even more fraught with difficulty. In this article, we will take you on a behind-the-scenes exclusive, explaining one of the most complex developer issues for multiplayer apps.
Stop Interviewing with Leet Code
During interviews, technical skills in the industry are still largely vetted through LeetCode-style questions. These are small algorithmic riddles in the for...
50th Anniversary of the Mother of All Demos (2018)
I was asked to give a toast in celebration of the 50th Anniversary of [The Mother of All Demos](https://en.wikipedia.org/wiki/The_Mother_of_All_Demos) so I spent some time reflecting on Engelbart's w...
Pyston-lite: our Python JIT as an extension module
Today we’re very excited to announce Pyston-lite, a JIT for Python that is easily installable as an extension module. We’ve taken the core technology of Pyston and repackaged it so that…
The End of Localhost
All the Cloud's A Staging Env, and All the Laptops Merely Clients
Is there a maximum size for Windows clipboard data?
There is no pre-set maximum size, but that null might be coming from somewhere else.
What ID3v2 could have been
Speculations and specifications. If you were a Winamp user back in the day, or curate an MP3 collection currently, you might recognize the humble ID3 tag. It is what the metadata in the MP3 file is made up of. First it was pretty limited in the version later dubbed ID3v1. Like any good 2.0 they added a ton more…
Dhall: A Gateway Drug to Haskell
Personal blog of Saurabh Nanda
What’s the best lossless image format?
In a blog post last year, I took a look at lossy image formats and how they stack up. This time, I thought it might be interesting to do a comparison of lossless image formats.
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…
Why Emacs has buffers
Emacs's buffers are so much more than their name implies. They're not just a vessel for you to read or write from. Buffers in Emacs host network processes, shells, and transient data. They're also a key part to understanding why Elisp is designed the way it is.
News from WWDC22: WebKit Features in Safari 16 Beta
WebKit has had a big year, with over 162 new features and improvements shipping in WebKit browsers — including Safari 15.2, Safari 15.4, and Safari 15.5.
iOS 16 to support Web push notifications in 2023
iOS 27 with all-new Siri AI powered by Apple Intelligence and new features for a more responsive, delightful experience.
The true cost of linked lists
Linked lists are often overused in introductory algorithmics courses, due to a heavy focus on theorical complexities. Unfortunatly, in practice, computers are complex beasts. They don’t execute instructions sequentially 1 with the same cost 2 . This means that a data structure with faster theorical complexities does…
What is a programmable programming language? (2019)
When I was still researching this fabled obscure language called Lisp one thing people kept saying about it is that “Lisp is a programmable programming language”, but I could never figure out what they meant by that. It sounds like a smug buzzword or like a gimmick from an academic toy language. Lisp programmers have…
I Built a Ruby Parser
Sorry, this post will read like a “dear diary” entry rather than some life-changing HN-worthy guidance. Back in November 2020, almost on a whim I started work on a new parser for the Ruby programming language. It was almost exactly a year after I had started working on my compiler project (I hope to write a longer…
Arc and Mutex in Rust
When writing concurrent Rust you will encounter Arc and Mutex types sooner or later. And although Mutex might already sound familiar as it's a concept known in many languages, chances are you haven't heard about Arc before Rust. What's more, you can't fully understand these concepts without tying them to the ownership…
Vectorized and performance-portable Quicksort
We're sharing open source code that can sort arrays of numbers about ten times as fast as the C++ std::sort
Async Rust doesn't have to be hard
An article titled Rust Is Hard, Or: The Misery of Mainstream Programming came out today and it's getting a lot of attention. I have a feeling that it's viewed in a wrong context, so I'd like to comment on the issue raised there.
Using the mold linker for fun and 3x-8x link time speedups
A large C++ codebase meets a new linker: The good, the bad and the performance improvements <a class="more-link" href="https://www.productive-cpp.com/using-the-mold-linker-for-fun-and-3x-8x-link-time-speedups/">... Read More</a>