It's not enough for a program to work – it has to work for the right reasons
Successful software is buggy software.
Topics /
The most popular blog posts about software engineering on Hacker News. 14,544 posts.
Successful software is buggy software.
In this blogpost I will step by step show you how to implement a highly efficient transpose kernel for the Hopper architecture using Mojo. The best kernel a...
Typically you either have an executable or a shared library, but can you have an executable shared library too?
Rust compilation times is an ongoing topic that generates many discussions online1. Most people don’t really care about what exactly takes time when compiling Rust program; they just want it to be faster in general. But sometimes, you can see people pointing fingers at specific culprits, like LLVM or the borrow…
If The `if` statement is pretty much the same in Rust as C++. One difference is that the braces are mandatory, but brackets around the ...
Name: Comic Code, Comic Code Ligatures Type: Retail typeface Publisher: Tabular Type Foundry Release year: 2019 Purchase links: I Love Typography (both)
As more engineers use the irresistible LLMs their skills atrophy, practicing will make you special.
I’ve been working on a CLI tool recently, and one of the things it does is manage files on disk. I have written a lot of file management tests for Bundler, and the two biggest reasons that the Bundler test suite is slow are exec and fstat. Knowing that, I thought I would try to get out ahead of the slow file stat…
A simple, whitespace theme for academics. Based on [*folio](https://github.com/bogoli/-folio) design.
Note The latest version of this document can be found online at https://dr-knz.net/go-executable-size-visualization-with-d3.html. Alternate formats: Source, PDF. Note Erratum (2019-04-02): The increase in binary size from CockroachDB v1.0 to v19.2 is 94%/125%, not 194%/225% as initially written. The increase in source…
Suppose you’re not using a C runtime on Linux, and instead you’re programming against its system call API. It’s long-term and stable after all. Memory management and buffered I/O are easily solved, but a lot of software benefits from concurrency. It would be nice to also have thread spawning capability. This article…
This will be the first in a series of posts describing different design decisions made writing two Rust crates:
Byte swapping does not necessarily imply the data comes from an external source. For example, when writing graphics code, you sometimes need to do byte swapping if you’re converting between 24-bit RGB and BGR image formats (Windows’ GDI famously uses BGR so this is one place where you need to do such conversions)…
After almost two years of work, we are happy to announce the release of Xfce 4.20.
Demonstrating how a weak session secret can allow an attacker to take control of a server
I called someone a plumber programmer the other day. The person I was speaking to didn't realize that "plumber programmer" is a term of great respect. The plumber is often the most experienced programmer on a team. As with literal plumbing, software plumbing connects things together. It deals with things other people…
After writing my thoughts on github3.py down here, someone was asking about Python libraries that people recommend new Python developers read for learning how to structure code and use the packaging systems. My initial reaction was "Don't listen to folks that tell you to read python-requests as a good example." When…
My job these days is teaching TLA+ and formal methods: specifying designs to find bugs in them. But just knowing the syntax isn’t enough to write specs, and it helps to have examples to draw from. I recently read Chris Siebenmann’s Even in Go, concurrency is still not easy and thought it would make a good case study…
This is a really neat pattern. Start your Python script like this: #!/usr/bin/env -S uv run # /// script # requires-python = ">=3.12" # dependencies = [ # "flask==3.*", # …