Topics /
Software Engineering
The most popular blog posts about software engineering on Hacker News. 21,842 posts.
The Applesoft Compiler (TASC): We have the source code, in a sense
The desperation of programming under tight memory constraints.
A Collection of Examples of 64-bit Errors in Real Programs
A portfolio of HPC tools help data scientists, researchers, and developers efficiently build cross-architecture applications.
Analyzing Django requirement files on GitHub
Safety gives security teams real-time visibility and governance over every AI tool, package, MCP server, and IDE extension across their developer fleet.
Rust testing or verifying: Why not both?
Dijkstra famously dissed testing by saying “Program testing can be used to show the presence of bugs, but never to show their absence!” As if you should choose one over the other. I don’t see them as opposites but as complementary techniques that should both be used to improve the quality of your code.
A Cryptographic Near Miss
A recent issue in scalar multiplication makes for a good case study of how unsafe interfaces, undocumented assumptions, and time lead to vulnerabilities.
How Kubernetes Probes Work
Learn how probes work interactively on simulated Kubernetes clusters running in your browser.
Dissecting the 128-byte raycaster
Lately a Reddit post caught my attention which is about a raycaster demo, animated, with mouse control and texture mapping, in only 128 byt...
New features in GCC 16: Improved error messages and SARIF output
Explore new GCC 16 features for C++ developers. Learn about improved hierarchical error messages, updated SARIF output, and experimental HTML diagnostic tools.
Developing a Statically Typed Programming Language (2017)
In this blog post we’ll go through a sample implementation of a type checker, interpreter and a transpiler for a basic purely functional programming language, which is based on the lambda calculus. We will do a “full-stack” programming language development by going through formal definition of the language’s syntax…
Guide to Speech Recognition with Python
An in-depth tutorial on speech recognition with Python. Learn which speech recognition library gives the best results and build a full-featured "Guess The Word" game with it.
A Foray into Go Assembly Programming
This blog post started last August when I was integrating the Spectator PercentileTimer concept into the metrics library in Rend so we could get better cross-fleet latency percentiles.
Racket v9.3
_posted by Stephen De Gabrielle and John Clements_ We are pleased to announce Racket v9.3 is now available from https://download.racket-lang.org/. As of this release:: The `raco setup` command can generate markdown documentation, using the `--doc-mark...
Streaming Combinators and Extracting Flat Parallelism
A high-performance and high-level purely functional data-parallel array programming language that can execute on the GPU and CPU.
LLVM 3.3 Released
This document contains the release notes for the LLVM Compiler Infrastructure, release 3.3. Here we describe the status of LLVM, including major improvements from the previous release, improvements in various subprojects of LLVM, and some of the current users of the code. All LLVM releases may be downloaded from the…
Scaling Git, and some back story
A couple of years ago, Microsoft made the decision to begin a multi-year investment in revitalizing our engineering system across the company. We are a big company with tons of teams – each with their own products, priorities, processes and tools. There are some “common” tools but also a lot of diversity – with VERY…
Dolphin Progress Report: September 2017
While an emulator's primary job is to emulate, there's usually a lot more that goes into a good emulator. For Dolphin, it may feel like a lot of work has gone toward luxury features and optimizations rather than improving accuracy and compatibility. For example, Ubershaders is a wonderful, game-changing feature, but…
Monte Carlo Crash Course: Quasi-Monte Carlo
We’ve learned how to define and apply Monte Carlo integration—fundamentally, it’s the only tool we need. In the remaining chapters, we’ll explore ways to reduce variance and successfully sample difficult distributions.
TLA+ in Practice and Theory, Part 4: Order in TLA+
We learn how to encapsulate and compose TLA+ specifications, of the precise mathematical definition of abstraction, and compare TLA+'s notion of abstraction with those of other formalisms. Plus some various cool stuff.
GCC 8 Link Time and Interprocedural Optimization
GCC 8.1 was released and Linux distros are starting to pick it up. This week hit the openSUSE Thumbleweed update with full rebuild (thanks t...
What’s wrong with Git? A conceptual design analysis (2016)
What’s wrong with Git? A conceptual design analysis De Rossi & Jackson Onward! 2013 We finished up last week talking about the how to find good concepts / abstractions in a software desig…
You can't make C++ not ugly, but you can't not try (2010)
...everything that's wrong with C++ comes down to that. Background: I've been programming in C++ since about 1993; that's 17 years now. As...
Browsers barely care what HTTP status code your web pages are served with
You're probably reading this page because you've attempted to access some part of my blog (Wandering Thoughts) or CSpace , the wiki thing it's part of. Unfortunately you're using a browser version that my anti-crawler precautions consider suspicious, most often because it's too old (most often this applies to versions…
Farewell, Rust for web
Farewell, Rust for web. For now…
To type or not to type: quantifying detectable bugs in JavaScript
To type or not to type: quantifying detectable bugs in JavaScript Gao et al., ICSE 2017 This is a terrific piece of work with immediate practical applications for many project teams. Is it worth th…