Why is calling my asm function from Rust slower than calling it from C?
This is a follow-up to making the rav1d video decoder 1% faster, where we compared profiler snapshots of rav1d (the Rust implementation) and dav1d (the C …
Topics /
The most popular blog posts about software engineering on Hacker News. 1,747 posts.
This is a follow-up to making the rav1d video decoder 1% faster, where we compared profiler snapshots of rav1d (the Rust implementation) and dav1d (the C …
Personal blog of Stephen Diehl - Software engineer writing about technology, programming, and the future
Humans have a tendency toward binary thinking (pardon the pun). If it's not A, it's B. Perhaps because Lisps have REPLs, they are often thought of from the outside as being dynamic, interpreted languages. Our years of Python have taught us that such languages don't really have strong typing - it's all a wild guess…
Adding multi-scale noise layers, mountain distance fields, and elevation blending to create detailed terrain from the paint map foundation.
Note for subscribers: if you are interested in my Ada programming articles only, you can use this RSS feed link. Link to Part 3 here . As ...
Tangent space is often presented as a confusing block of shader math. This is a deep dive into what tangent vectors actually mean, how they emerge from UVs to bridge 2D and 3D space, and the geometry that makes normal mapping possible.
Without writing a single line of Rust, why I feel it might be right
Vibe coding (or vibeware) is making rounds on X now. To the best of my knowledge Andrej Karpathy started the “meme” in this X entry . I find it well written and hilarious and it seems to have taken off.
Is 1970s distributed systems theory finally meeting 2020s kernel development?
We’ve discussed SIMD and vectorization extensively on this blog, and it was only a matter of time before SIMD (or vector) functions came up. In this post, we explore what SIMD functions are, when they are useful, and how to declare and use them effectively. A SIMD function is a function that processes more than… Read
The latest release of our state-of-the-art Java runtime that runs completely in the browser via WebAssembly, is now available. Supports up to Java 17.
I built a simple web crawler using good old platform threads. It was just a multithreaded crawler, nothing fancy. But then, curiosity…
Dithering is still a surprisingly applicable technique, not just for practical reasons (such as preparing a full-color image for output on a non-color printer), but for artistic reasons as well. Dithering also has applications in web design, where it is a useful technique for reducing images with high color counts to…
How I investigated and worked around a kernel bug that caused async-profiler to freeze my machine whenever I tried to use a profiler.
ImapGoose is a small program to keep local mailboxes in sync with an IMAP server. The wording “keep […] in sync” implies that it does so continuously, rather than a one-time sync. ImapGoose is designed as a daemon, monitoring both the IMAP server and the local filesystem, and immediately synchronising changes. When…
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).
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.
A balanced take on the printf vs debugger debate: why there is no single right answer, and how to choose the right debugging approach for the situation at hand.
A critique of React Server Components and Next.js 15.
I like to answer this frequent question by way of an example. An example of two companies. It goes something like this:
Learn practical optimization hacks, from data structures to built-in modules, that boost speed, reduce overhead, and keep your Python code clean.
Blog of Vincent Rolfs. Vincent is a freelance Software Engineer and IT-Consultant. He has more than ten years experience in developing complex applications on the web.
What is local-first software and why does it matter? This guide covers local-first architecture, offline-capable apps with automatic sync, data ownership, and how to build a local-first web app with Vue step by step.
A practical, no-fluff guide to understanding the OpenTelemetry Collector - what it does, how it works, real architecture patterns (with and without it).
Consider this tale of I/O and performance. We’ll start with blocking I/O, explore io_uring and kqueue, and take home an event loop very similar to some software you may find familiar.
Rahul's Blog
n.b. This is a written version of a dialogue from a YouTube video: 2 Language Creators vs 2 Idiots | The StandupPackage managers (for programming languages) are evil.11 The term “evil” is being used partially hyperbolic to make a point.To start, I need to make a few distinctions between concepts a lot of programmers…
One year ago, I started programming a puzzle game from scratch in Zig. While it’s too early to announce the game (more on this later in the year), I want to share some of the insights I’ve gained about gamedev in Zig so far.
Three years ago, I wrote a post about shipping ESM & CJS in a single package , advocating for dual CJS/ESM formats to ease user migration and trying to make the best of both worlds. Back then, I didn’t fully agree with aggressively shipping ESM-only , as I considered the ecosystem wasn’t ready, especially since the…