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.
Every blog post that took off on Hacker News, ranked by the votes of its best submission. 21,842 posts.
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.
When talking about TLA+, I keep referring to "abstraction" as the most important thing to learn . And it is about the hardest to learn as w...
Follow me on Bluesky! A Log-Structured Merge tree, or LSM, is a popular data structure for storage engines. It’s what is used by RocksDB, which is sort of...
With the latest release of corecrypto, we’re publishing our implementations of quantum-secure ML-KEM and ML-DSA algorithms, along with the mathematical proofs we built to assure they are faithful to the FIPS 203 and FIPS 204 specifications. To advance the state of the art for assuring critical software, we're also…
It’s already been a great reading day for retrospectives on the last ten years / predictions for the next. Here’s to hoping that everyone had a good break (or at least a few days off), set or didn’t set resolutions, and is refreshed and ready for what comes next.
Combinatris
An incredible amount has changed in Mesa and in the Vulkan ecosystems since we wrote the first Vulkan driver in Mesa for Intel hardware back in 2015. Here's a look at the latest Mesa utilities, helpers & best practices for writing Vulkan drivers.
Since I had one week before my next contract I decided to finish my "cycle of id". After Doom , Doom Iphone , Quake1 , Quake2 , Wolfenstein iPhone and Doom3 I decided to read the last codebase I did not review yet: idTech3 the 3D engine that powers Quake III and Quake Live . The engine is mostly an evolution of…
I started work on mitmproxy because I was frustrated with the available interception tools. I had a long list of minor complaints - they were insufficiently flexible, not programmable enough, mostly written in Java (a language I don't enjoy), and so forth. My most serious problem, though, was opacity. The best tools…
A great moment has arrived. We are going to apply our neural networks implementation to a regression problem. The network is going to learn a known function,...
There is a better way to explore and analyze time-series data with PostgreSQL: hyperfunctions. Learn how to ease your workload with faster and simpler data.
Craig Federighi: I always end up seeking back to figure out what part I missed where the podcast started, and then I realize it just starts.
The stage has been set for wrapping up the simplest version of a complete neural network API, and its key part that offers the entry for the /learning/ funct...
This post is about the AioContext lock removal in QEMU 9.0 (planned for release in 2024), how we got here, and what it means for multi-threa...
Optimizing compilers like to keep track of each IR instruction’s effects. An instruction’s effects vary wildly from having no effects at all, to writing a specific variable, to completely unknown (writing all state).
We recently released a new differential testing tool, called DIFFER, for finding bugs and soundness violations in transformed programs. DIFFER combines elements from differential, regression, and fuzz testing to help users find bugs in programs that have been altered by software rewriting, debloating, and hardening…
Bridging Discrete and Continuous Logic in Automated Reasoning Systems In this article we will explore the connection between Functional Programming and reasoning. Functional Programming is often ad…
This post shares the local optima Manus arrived at through our own "SGD". If you're building your own AI agent, we hope these principles help you converge faster.
As you all may know, I watched and posted my lecture notes of the whole MIT Introduction to Algorithms course. In this post I want to summarize all the topics that were covered in the lectures and point out some of the most interesting things in them. Actually, before I wrote this article, I had started writing an...
We usually learn that 1 kilobyte is 1024 bytes, 1 MB is 1024 kilobytes, etc. But is this true or a kilobyte is precisely 1000 bytes?
C++ exceptions have their place, but using an alternative is recommended for general program flow control.
So the other day I both defined Tcl procedures all by myself and used them interactively, and I liked it, to the point where it felt like some kind of local optimum. This entry is an attempt to cope with the trauma of liking Tcl, by means of rationalizing it. I'll first tell the story of my fascinating adventures, and…
I’ve been writing a pubsub listener for work recently and had this silly “shower thought”: the ideal queue should be empty. Why? If the queue is not empty, it means that whatever job is consuming from the queue is not keeping up with messages coming into it. Ok, then if queues are supposed to be empty, then what are…