Topics /
Software Engineering
The most popular blog posts about software engineering on Hacker News. 21,843 posts.
Akka.NET 1.1: Akka.Cluster, Akka.Streams, and Multi-Node Testing
High Availability for Enterprise .NET
Squashed Bugs, with Failure Rate Heatmaps
TiDB is the distributed SQL database built for AI agents. Vectors, transactions, and analytics in one engine with ACID guarantees and elastic scale.
Basics of Futexes
The futex (short for "Fast userspace mutex") mechanism was proposed by Linux contributors from IBM in 2002 [1] ; it was integrated into the kernel in late 2003. The main idea is to enable a more efficient way for userspace code to synchronize multiple threads, with minimal kernel involvement.
Fuzzing Java in OSS-Fuzz
Posted by Jonathan Metzman, Google Open Source Security Team OSS-Fuzz , Google’s open source fuzzing service, now supports fuzzing applicat...
Google releases its own Javascript Lint tool
When collaborating with lots of engineers as we do here at Google, it’s important to keep a consistent coding style. To this end, we recent...
Go 1.26 Interactive Tour
New with expressions, type-safe error checking, and faster everything.
Deterministic multithreading is hard (2024)
Hello, While a lot of time of 2.0 development has been spent on new features and quality of life, we still take care of the smaller details and technical improvements.
Improve Your Python: Metaclasses and Dynamic Classes With Type
Socolive TV phát sóng trực tiếp bóng đá hôm nay, link xem SocoliveTV sắc nét chuẩn HD. Cập nhật Lịch thi đấu, BXH, Highlight, Kết quả bóng đá mới nhất!
Teaching Claude to QA a mobile app
“When life looks like Easy Street, there is danger at your door”— Grateful Dead, “Uncle John’s Band”
An introduction to modern OpenGL
Table of Contents | Chapter 2 » OpenGL has been around a long time, and from reading all the accumulated layers of documentation out there on the Internet, it's not always clear what parts are h…
URG
If you asked software engineers some of their “least hated” things, you’ll likely hear both UTF-8 and TCP. TCP, despite being 35 years old, is rock-solid, stable infrastructure that we take for granted today; it’s hard to sometimes realize that TCP was man-made, given how well it’s served us. But within every single…
Let's build a simple interpreter for APL, part 2 (2020)
Today is the day! Today is the day we take our APL programs and interpret them, so that something like ÷ 1 2 3 -⍨ 1.1 2.2 3.3 can output 10 5 3.33333333.
How to design an elliptic-curve signature system
Earlier this month a new paper by Naomi Benger, Joop van de Pol, Nigel Smart, and Yuval Yarom hit the news . The paper explains how to recover secret keys from OpenSSL's implementation of ECDSA-secp256k1 using timing information from "as little as 200 signatures"; ECDSA-secp256k1 is the signature system used by…
Recursion, continuations and trampolines (2017)
How is tail recursion different from regular recursion? What do continuations have to do with this, what is CPS, and how do trampolines help? This article provides an introduction, with code samples in Python and Clojure.
Reflections on Learning Rust by Building Punchtop
To learn Rust, I implemented an audio game. There were some things I liked and some things I didn't. Some things were easy and some were hard. And there were plenty of libraries that were a joy to use.
Linear Algebra of Types (2019)
It gives my brain a pleasant thrum to learn new mathematics which mimics the algebra I learned in middle school. Basically this means that the new system has operations with properties that match those of regular numbers as much as possible. Two pretty important operations are addition and multiplication with the…
Specialising Dynamic Techniques for Implementing The Ruby Programming Language
People who write Ruby programs want to use metaprogramming. It’s part of what makes the language what it is. But in existing implementations of Ruby, metaprogramming is slow. My work focused on making it fast, providing fast tooling for Ruby programmers, and fast support for legacy C extensions.
SpiderMonkey is on a diet
One thing I’ve learnt while working for Mozilla is that a web browser can be characterized as a JavaScript execution environment that happens to have some multimedia capabilities. In particular, if you look at Firefox’s about:memory page, the JS engine is very often the component responsible for consuming the most…
Announcing the jQuery Foundation
jQuery: The Write Less, Do More, JavaScript Library
Checked exceptions: Java’s biggest mistake (2014)
Checked exceptions have always been a controversial feature of the Java language.
Understanding React Compiler
Cache all the things. How React Compiler works under-the-hood.
How GCC and Clang handle statically known undefined behaviour
Recently, we had a discussion in our team about undefined behaviour (UB) in C. For those unfamiliar: We say that a program has undefined behaviour when we write code where the language specification doesn't define what should happen during execution. That means compilers can do whatever they like if they encounter…
Web apps are better than no apps
There’s a certain community in tech that’s very vocal about their preference toward native apps. I share that sentiment, yet sometimes people take this …