Topics /
Software Engineering
The most popular blog posts about software engineering on Hacker News. 14,535 posts.
Git Rebase for the Terrified
As a maintainer of several OneBusAway projects, I regularly ask contributors to rebase their branches before merging. The response is often hesitation or…
Software for One
Robin Sloan wished for a HyperCard that could build a family app in a day. That world showed up.
The Modern Java Platform – 2021 Edition
Many developers were burned by the overly complex world of Java back in the early 2000s. The Gang of Four patterns and middleware / J2EE / Java EE led to…
AI scrapers request commented scripts
A new avenue for identifying greedy, badly-behaved bots
The Swift compiler is slow due to how types are inferred
How a 10 year old design choice for Swift’s type checker still haunts us to this day
Folk wisdom on visual programming
I’m a fairly frequent Hacker News lurker, especially when I have some other important task that I’m avoiding. I normally head to the Active page (lots of comments, good for procrastinat…
Building a unikernel that runs WebAssembly – part 1
Hackweek 22 took place last week. During this week all the SUSE employees are free to hack on whatever they want. This one of the perks of working at SUSE 😎.
OpenSCAD 3D rendering just got an order of magnitude faster
TL;DR: OpenSCAD users: download a nightly build & enable fast-csg in settings for 10x faster render (YMMV). Make your models more ambitious and report is...
Fast UTF-8 validation
One of the most common "data type" in programming is the text string. When programmers think of a string, they imagine that they are dealing with a list or an array of characters. It is often a "good enough" approximation, but reality is more complex. The characters must be encoded into bits in some way. Most ……
Tree-sitter vs. Language Servers
I got asked a good question today: what is the difference between Tree-sitter and a language server ? I don’t understand how either of these tools work in depth, so I’m just going to explain from an observable , pragmatic point of view.
Hilariously fast volume computation with the divergence theorem (2018)
The following presents a fast algorithm for volume computation of a simple, closed, triangulated 3D mesh. This assumption is a consequence of the divergence theorem. Further extensions may generalise to other meshes as well, although that is presently out of scope.
Artisanal handcrafted Git repositories
How to lovingly handcraft your own git repositories
Git Commands Explained with Cats (2017)
git purr, git meowge, and git puss! My doodling on basic git commands, and difference between merge and rebase with cats!
Learning Solver Design: Automating Factorio Balancers
I built a Factorio belt balancer solver. From tiny 2x2 grids to a massive 16x16 monster, every step revealed new solver tricks, numeric hiccups, and devious debugging puzzles.
A Brief Guide to a Few Algebraic Structures
Occasional writings about Haskell.
Practical Networked Applications in Rust, Part 1: Non-Networked Key-Value Store
The PingCAP company, makers of the TiDB NewSQL database and the TiKV key-value store, have kindly made publicly available, as well as open-sourced, a set of training courses that they call the "PingCAP Talent Plan". These courses train programmers in writing distributed systems in the Go and Rust languages. They are…
Announcing Rust Language Server Alpha Release
BONANZA138 menghadirkan link alternatif portal game terbaru dan terpercaya. Dapatkan rute bonanza138 login anti-blokir, proteksi TLS modern dan pelayanan setiap hari.
C and C++ prioritize performance over correctness
The original ANSI C standard, C89, introduced the concept of “undefined behavior,” which was used both to describe the effect of outright bugs like accessing memory in a freed object and also to capture the fact that existing implementations differed about handling certain aspects of the language, including use of…
People suck at technical interviews (2014)
Most technical interviews test the wrong things: memorized syntax, whiteboard coding, brand-name employers. Instead, hire for learning ability, intellectual honesty, clear communication, and basic decency. "Team fit" is bias in disguise. Homogeneity means you're hiring wrong. Good hiring is hard and slow, but worth it.
The Rise of Worse Is Better (1991)
I and just about every designer of Common Lisp and CLOS has had extreme exposure to the MIT/Stanford style of design. The essence of this style can be captured by the phrase the right thing . To such a designer it is important to get all of the following characteristics right:
Never write your own date parsing library
Never write your own date parsing library. Never. No exceptions. Never have I ever… So… I’ve written my own date parsing library. Why? Our story begins seven…
Zig's multi-sequence for loops
Loris Cro's Blog
Two Years with Rust
It’s been just over two years since I started learning Rust. Since then, I’ve used it heavily at my day job, including work in the Firecracker code base, and a number of other projects. Rust is a great fit for the systems-level work I’ve been doing over the last few years: often performance- and density-sensitive…
Go 1.17 is deprecating the traditional use of 'go get'
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…
500 Byte Images: The Haiku Vector Icon Format
Haiku uses a custom vector image format to store icons. This is surprising both because most OSes consider bitmaps to be totally sufficient to represent icons and because there are plenty of vector graphics formats out this (e.g. SVG). The goal of the Haiku Vector Icon Format (HVIF) is to make vector icon files as…