Topics /

Software Engineering

The most popular blog posts about software engineering on Hacker News. 1,535 posts.

2024
301

A 100x speedup with unsafe Python

We're going to speed up some numpy code by 100x using "unsafe Python." Which is not quite the same as unsafe Rust, but it's a bit similar, and I'm not sure what else to call it... you'll see. It's not something you'd use in most Python code, but it's handy on occasion, and I think it shows "the nature of Python” from…

302

A Real Life Off-by-One Error

The Championnats d’Europe d’Escalade (climbing) in Villars-sur-Ollon has just finished. I couldn’t make it to all the events, but did see the finals of the “Speed” event. It’s a series of head-to-head elimination races up a 15m tall wall, resulting in an eventual victor after enough rounds.

303

How I Program in 2024

I talk a lot here about using computers freely , how to select programs to use, how to decide if a program is trustworthy infrastructure one can safely depend on in the long term. I also spend my time building such infrastructure, because there isn't a lot of it out there. As I do so, I'm always acutely aware that I'm…

305

Writing a TrueType font renderer

Text is the medium of digital interaction, and text rendering has an outsized impact on the overall fit and finish of any system. It therefore pains me that axle has for years relied on a low-resolution 8x8 bitmap font. Let’s fix it! Take a look at the characters composing this sentence. Note the curves, the negative…

306

scrapscript.py

Scrapscript is a small, pure, functional, content-addressable, network-first programming language. It’s designed to allow creating small, simply shareable programs. The language was created by Taylor Troesh and the main implementation was created by me and Chris.

307

Stable Code 3B: Coding on the Edge

Stable Code, an upgrade from Stable Code Alpha 3B, specializes in code completion and outperforms predecessors in efficiency and multi-language support. It is compatible with standard laptops, including non-GPU models, and features capabilities like FIM and expanded context size.

311

Long Term Software Development

Recently the Dutch Electoral Board (where I am also a very part time advisor) invited me to do a talk reflecting on their open source Abacus vote tabulation software. Much software is now provided as a service, and is typically deployed continuously (CD, continuous deployment), surrounded by enough automated testing…

315

TIL: Versions of UUID and when to use them

About a month ago [1] , I was onboarding a friend into one of my side project codebases and she asked me why I was using a particular type of UUID. I'd heard about this type while working on that project, and it's really neat. So instead of hogging that knowledge for just us, here it is: some good uses for different…

323

Coroutines in C (2000)

Structuring a large program is always a difficult job. One of the particular problems that often comes up is this: if you have a piece of code producing data, and another piece of code consuming it, which should be the caller and which should be the callee?

327

How we applied fuzzing techniques to cURL

Near the end of 2022, Trail of Bits was hired by the Open Source Technology Improvement Fund (OSTIF) to perform a security assessment of the cURL file transfer command-line utility and its library, libcurl. The scope of our engagement included a code review, a threat model, and the subject of this blog […]