New
The latest blog posts to take off on Hacker News. 21,834 posts.
Unsafe Zig Is Safer Than Unsafe Rust
This pattern is pretty common if you are interacting with Operating System APIs . Another example .
7-Zip: Multiple Memory Corruptions via RAR and ZIP
Blog about anti-virus software vulnerabilities.
Reducing Memory Usage in Ruby
I’ve been working on building a compacting garbage collector in Ruby for a while now, and one of the biggest hurdles for implementing a compacting GC is updating references. For example, if Object A points to Object B, but the compacting GC moves Object B, how do we make sure that Object A points to the new location?…
Building a Distributed Log from Scratch: Sketching a New System
In part four of this series we looked at some key trade-offs involved with a distributed log implementation and discussed a few lessons learned while building NATS Streaming. In this fifth and final installment, we’ll conclude by outlining the design for a new log-based system that draws from the previous entries in…
Resources for Learning about .NET Internals
It all started with a tweet, which seemed to resonate with people:
Perl 6 Optimism
Andrew Shitov made my day with his It’s time for optimism blog post, in which he talks about some random things related to Perl 6 and its future. Well, not entirely random: the impetus for th…
What happens when you grep the file you've redirected grep to?
I was recently eating lunch with someone who asked a question that I became somewhat obsessed with: what happens when you grep a file and append the contents...
Why is Rust difficult?
Rust is considered difficult to learn by many people. Indeed, when I learned it, I considered it to be the hardest programming language up to that time I’ve met. And that says something, since I have a habit of learning whatever language I find interesting. Looking back, I’m not sure I was correct, C++ is probably…
The Death of Microservice Madness in 2018
Dave Kerr, partner and Head of Engineering at QuantumBlack Labs, McKinsey & Company. Writing on software engineering and agentic AI.
More Things I Wish I’d Known About Bash
My previous post took off far more than I expected, so I thought I’d write another piece on less well-known bash features.
Brushing up on operating systems and C programming
If you were like me in college, you first learned about the C programming language in an introductory computer science course. Then, perhaps you took a really hard course in operating systems. Then, y
JS things I didn’t know existed
I was reading through the MDN docs the other day and found these JS features and APIs I never knew existed. So here is a short list of those things, useful or not - learning JS seemingly never ends. Label Statements [https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/
C as an intermediate language (2012)
Here's a Forth program debugged in KDevelop – a graphical debugger without Forth support:
JEP 325: Switch Expressions
Extend the switch statement so that it can be used as either a statement or an expression, and that both forms can use either a "traditional" or "simplified" scoping and control flow behavior. These changes will simplify everyday coding, and also prepare the way for the use of pattern matching (JEP 305) in switch …
Embedded in Rust: Brave new I/O
A blog about Rust and embedded stuff
Keep Webpack Fast: A Field Guide for Better Build Performance
webpack is a brilliant tool for bundling frontend assets. When things start to slow down, though, its batteries-included nature and the ocean of third-party tooling can make it difficult to optimize. Poor performance is the norm and not the exception. But it doesn’t have to be that way, and so — after many hours of…
Rust and QML: a timely example
A brief recap. The new project Rust Qt Binding Generator can create bindings between Rust code and Qt code. You can use Rust code to power your Qt application. Or in other words, you can use Qt as a cross-platform user interface for your Rust application.
Clojure Numerics: Orthogonalization and Least Squares
How to solve linear systems that have many solutions, or those that have no solutions at all? That's the theme for a thick math textbook, of course, but from...
Oxidizing Source Maps with Rust and WebAssembly
A detailed look at how we replaced the most performance-sensitive portions of the source-map JavaScript Library’s source map parser with Rust code that is compiled to WebAssembly. The results: The ...
Ethereum programming for web developers
HappyFunCorp ships AI-enabled products and custom software for web, mobile, TV, and more. Trusted by leading startups and Fortune 500 clients since 2009.
Fast base64 encoding and decoding
Computers store data as streams of bits. Binary files like image, audio or video files are allowed to contain just about any sequence of bits. However, we also often use text formats; for example, web pages and emails are required to be text. So how do we send images by email? How do we embed … Continue reading…
Elixir v1.6 released: code formatter, dynamic supervisors, and more
Elixir v1.6 includes a code formatter, defguard, dynamic supervision and new module attributes that improves code quality and the developer experience.
Go Is a Great Fit for Lambda
Why Go’s stability and simple deployments is a good fit for a serverless environment.