Topics /

Software Engineering

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

2024
757

0xCAFEBABE & 0xFEEDFACE (2003)

Tuesday, January 28, 2003 0xCAFEBABE & 0xFEEDFACE Recently, the origin of the magic numbers of 0xCAFEBABE and 0xFEEDFACE came up in an email conversation between a number of ex-NeXT folks. Specifically, someone asked what the origin of the two magic numbers were in the context of mach-o file formats and why had Java…

762

A Tour of Hell – Shell scripting Haskell dialect

This set of slides sketches out the implementation of Hell , in technical detail. I do tend to switch between the slides, old code, and the present code, so bear with me. It's more about the ideas. If you want to see a complete implementation, the complete implementation of Hell is one file , which you can look…

768

Solving Probabilistic Tic-Tac-Toe

This morning, I came accross Cameron Sun’s Probabilistic Tic-Tac-Toe on HN . However, the comments were disappointing, with people proposing probabilistic models, linear programming, minimax algorithms, and heuristic evaluations to develop AI approaches for the game, none of which quite correct. In this post, I’ll…

772

Async2 – The .NET Runtime Async experiment concludes

The .NET team has been working on a new experiment called async2, which is a new implementation of the async/await pattern that is designed to be more efficient and more flexible than the current implementation. It started with green threads and ended with an experiment that moves async and await to the runtime. This…

773

Into CPS, Never to Return

CPS, or continuation-passing style, is an intermediate representation for programs, particularly functional programs. It’s used in compilers for languages such as SML and Scheme. Much of its utility comes from its support for tail calls and nonlocal control flow such as call/cc, but it can also be used as an…

778

What would it take to add refinement types to Rust?

A few years ago, on a whim, I wrote YAIOUOM. YAOIOUM was a static analyzer for Rust that checked that the code was using units of measures correctly, e.g. a distance in meters is not a distance in centimeters, dividing meters by seconds gave you a value in m / s (aka m * s^-1). YAIOUOM was an example of a refinement…