Topics /
Software Engineering
The most popular blog posts about software engineering on Hacker News. 14,543 posts.
TLA+ in Practice and Theory, Part 3: The Temporal Logic of Actions
TLA, the Temporal Logic of Actions is the core of TLA+. It is a temporal logic that minimizes the use of temporal reasoning in favor of more ordinary mathematics. It is a general mathematical framework for describing and reasoning about algorithms and systems.
Building a Distributed Log from Scratch: Scaling Message Delivery
In part two of this series we discussed data replication within the context of a distributed log and how it relates to high availability. Next, we’ll look at what it takes to scale the log such that it can handle non-trivial workloads. Data Scalability A key part of scaling any kind of data-intensive system is the…
Gopher Wrangling: Effective error handling in Go
When programming in Go, the amount of error handling is something that slaps you in the face. Most API’s you deal with will expose errors. It can become overwhelming, but with a few tips and a guiding principle we can make handling errors easy, keep our code clean and give you the confidence that nothing is breaking…
You Don't Need UUID
I've experienced first-hand how using UUID hurts the usability of computer systems, and I want you to understand why you certainly don't need it.
Zig and the design choices within
(From someone who has spent far too much time thinking about the designs of programming languages)
Delete tests
We’ve had decades of thought leadership around testing, especially coming from holistic development philosophies like Agile, TDD, and BDD. After all that time and several supposedly superseding movements, the developers I talk to seem to have developed a folk wisdom around tests. That consensus seems to boil down to…
If AI coding is lowering your code quality, you're not managing quality right
One common take on the coding agents that I see goes something like this: “Sure, AI helps you output more code, but won’t the quality suffer?”
Const all the things?
Last week someone posted a /r/cpp thread titled “Declaring all variables local to a function as const”: Ok, so I’m an old-school C++ programmer using the language now since the early ’90s. I’m a fan of const-correctness for function and member declarations, parameters, and the like. Where, I believe, it actually…
Your website should work without JavaScript (2021)
Recently I started a site of tools for boardgames players . Simple tools like dice and spinners.
C array types are weird
C array types are weird. In this article I’ll explain what I find weird about them, what I’d do differently, and ramble on a few related things.
Data Classification: Does Python still have a need for class without dataclass?
Does Python still have a need for class without @dataclass?
Cyclic dependencies are evil (2013)
Cyclic dependencies: Part 1
Amish Hackers (2009)
[Translations: Japanese] The Amish have the undeserved reputation of being luddites, of people who refuse to employ new technology. It’s well known the strictest of them don’t use electricity, or automobiles, but rather farm with manual tools and ride in … Continue reading →
Writing into Uninitialized Buffers in Rust
A blog by sunfishcode
My Favorite Books 2020
Mostly non-fiction books this year. Some in English, some in German.
"GitHub" Is Starting to Feel Like Legacy Software
I’ve used a lot of tools over the years, which means I’ve seen a lot of tools hit a plateau. That’s not always a problem; sometimes something is ju...
Pointers Are Complicated III, or: Pointer-integer casts exposed
In my previous blog post on pointer provenance, I have shown that not thinking carefully about pointers can lead to a compiler that is internally inconsistent: programs that are intended to...
Fear of Macros
Practical Racket macros
Mathematica v12.1
Biggest .1 release from Wolfram. 182 completely new functions, plus updates and enhancements. Includes full HiDPI support, computation with video, data structures, asymptotic superfunction, mathematical functions, plotting, geometric optimization, vector plotting, cross-hatching, computational topology, tabular data…
Trying to become a better developer by learning more about aviation
In the last few months, I started geeking more about aviation-related topics. Mostly by watching A LOT of videos explaining how things…
The Mediocre Programmer
The Mediocre Programmer is a book about the journey of becoming a better programmer. But before we can become better programmers we have to pass through being mediocre programmers. Mediocre doesn't mean a bad programmer --- far from it. It means lacking skill. As beginners we start our journey full of fresh ideas of…