Top posts
Every blog post that took off on Hacker News, ranked by the votes of its best submission. 21,834 posts.
Continued progress porting Emacs to Rust
The project to port all of the C code in Emacs to Rust has been going quite well of late, and a progress report is in order.
Abstract Syntax Tree for Patching Code and Assessing Code Quality
Abstract Syntax Tree is an extremely useful tool. It provides a tree representation of a source code, that can be traversed to parse the code while understanding the code’s language constructs. In this article, we explain how we have used ASTs to write IntelliPatch scripts that can...
Uv 0.3 – Unified Python packaging
Manage entire Python projects and even Python itself with a single unified tool.
Leave your OS at home: the rise of library operating systems
The efficiency of Operating Systems (OSes) has always been in the spotlight of systems researchers, ever since the seminal Dijkstra’s THE multiprogramming system in early 60s. But the reason …
Levels of code in Forth programming (2002)
I had been programming in Fortran and assembler for a number of years when I got my first personal computer. It was exciting. On the first generation PC one had to toggle in a paper tape loader from front panel switches, byte by byte, then start the paper tape reader and then one could output to the led on the front…
Reducers, transducers and core.async in Clojure
This is a whirlwind tour of some of the cool new features that appeared in Clojure in the past few years. I find it fascinating how one good idea (reducers) morphed into another (transducers), and ended up mating with yet another, apparently unrelated concept (concurrent pipelines) to produce some really powerful…
Announcing .NET Core 1.1
Updated (2017): See .NET Core Releases to learn about newer releases. We are excited to announce the release of .NET Core 1.1 RTM, the first “Current” release. You can start creating .NET Core 1.1 apps, today, in Visual Studio 2015, Visual Studio 2017 RC, Visual Studio Code and Visual Studio for the Mac. We used the…
Steve Yegge and Grok
Bryan Summersett's home page.
Client-side web programming in Haskell: A retrospective
At the beginning of this decade (2010), a few of us Haskellers were exploring how best to do client-side web programming. We didn’t want to write JavaScript. There’s a surprising number of techniques we tried to avoid doing so. There was work coming from academia and industry. Here’s a history of my own experience in…
Sanstun: A sans-IO, parallel-friendly WireGuard implementation in Rust
Our sans-IO WireGuard implementation in Rust, optimized for ease of use, security and performance through a parallel-friendly and idiomatic API.
A couple CSS tricks for HTML Dialog elements
You can use CSS to add some simple functionality to HTML <dialog> elements!
How do Ruby and Python profilers work?
How do Ruby & Python profilers work?
Let's Write Some x86-64
…"‘Our speech interposes itself between apprehension and truth like a dusty pane or warped mirror. The tongue of Eden was like a flawless glass; a light of total understanding streamed through it. Thus Babel was a second Fall.’ And Isaac the Blind, an early Kabbalist, said that, to quote Gershom Scholem’s translation…
A Git Horror Story: Repository Integrity With Signed Commits
(Note: This article was written at the end of 2012 and is out of date. I will update it at some point, but until then, please keep that in perspective.)
Delete an inline function, save 794 kB
In the previous episode of “Simple Changes to Shrink Chrome” I discussed how deleting ‘const’ from a few key locations could lead to dramatic size savings, due to a VC++ com…
Predicting Stack Overflow Tags with Google’s Cloud AI
Check out a cool project that leverages Stack Overflow Data and Google's Cloud AI to predict what tags would work best on Stack Overflow questions.
One-pass Compiler
A one-pass compiler emits assembly (or binary code) right during parsing, without creating an intermediate representation, such as an AST. This is a rare technique that was used back in the days when computer memory was scarce. This limited both the language features that were possible and the quality of the produced…
Vulkan 1.2
The Khronos Group announces the release of the Vulkan 1.2…
Say hello to x64 Assembly, part 1
Introduction There are many developers between us. We write a tons of code every day. Sometime, it is even not a bad code :) Every of us ...
Hidden Costs That Engineers Ignore
“It’ll only take me a few hours to implement the feature,” we sometimes say. But after finishing, we find that every few weeks, we’re either fixing a bug with the feature, explaining it to another eng
Wasmer JavaScript SDK
Dive into a world where running any WASI and WASIX package in your browser is a breeze. Whether it's Python, Bash, FFmpeg, or [any package published](<h...
Hello world in C inline assembly (2018)
A C program that writes "hello, world!" to the console using inline assembly instead of standard library functions, demonstrating direct system call invocation.
Indirection Is Not Abstraction
The concept of abstraction in software development is frequently misunderstood and confused with indirection. This is partially because of the keywords abstract and interface in statically-typed la...
Parsing integers quickly with AVX-512
If I give a programmer a string such as "9223372036854775808" and I ask them to convert it to an integer, they might do the following in C++: std::string s = .... uint64_t val; auto [ptr, ec] = std::from_chars(s.data(), s.data() + s.size(), val); if (ec != std::errc()) {} // I have an error ! // val … Continue reading…
How to Create Your Own Git Server
Although I'm a happy (also paying) user of GitHub's offerings, there are times when I prefer to host a private repository on a server I control. Setting up your own Git server can be useful if you're isolated from the public internet, if you're subject to inflexible regulations, or if you simply want features…
Maintenance: Of Everything, Part One
An in-depth exploration of maintenance, and a powerful argument for its civilizational importance.
Broken Ownership
In the ownership trio, we discussed 3 elements: Knowledge, Mandate and Responsibility. This article digs into various broken ownership scenarios where 1-2 of those elements are missing, what are the common symptoms and how to fix them.