Topics /

Software Engineering

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

2021
304

Why Rust strings seem hard

Lately I’ve been seeing lots of anecdotes from people trying to get into Rust who get really hung up on strings (&str, String, and their relationship). Beyond Rust’s usual challenges around ownership, there can be an added layer of frustration because strings are so easy in the great majority of languages. You just…

309

Updating the Go Memory Model

The current Go language memory model was written in 2009, with minor updates since. It is clear that there are at least a few details that we should add to the current memory model, among them an explicit endorsement of race detectors and a clear statement of how the APIs in sync/atomic synchronize programs.

315

Reviving Old X Code

I've taken the week between Christmas and New Year's off this year. I didn't really have anything serious planned, just taking a break from the usual routine. As often happens, I got sucked into doing a project when I received this simple bug report Debian Bug #974011

316

Bad TypeScript Habits

TypeScript and JavaScript have steadily evolved over the last years, and some of the habits we built over the last decades have become obsolete. Some might never have been meaningful. Here's a list of 10 habits that we all should break.

320

Goodbye C++, Hello C

Part 1 of this series about my toy renderer covers the most fundamental design decisions. Over the years, I have written many renderers and for a long time their complexity kept growing. This time, I took the opposite route. I wanted to maximize the fraction of code that implements crucial functionality rather than…

321

Writing high performance F# code

While this post is addressed to F# .NET developers, it introduces much wider concepts starting from hardware architecture to overall .NET runtime and JIT compiler optimizations. It shouldn't be a surprise - optimizing the application performance requires us to understand the relationships between our high level code…

322

Teeing, a hidden gem in the Java API

Last week, I described a use-case for a custom Stream Collector. I received a intriguing comment on Twitter: There was a 'Moved Permanently' error fetching URL: 'https://twitter.com/Miguucm/status/1389258245886390292' Hats off to you, Miguel! Your comment revealed a method I didn’t know! So I decided to investigate…

323

Why do we use R rather than Excel?

I recently had cause to take a beginners course in R - a language I'm fairly familiar with. One of the other students had never used it before, so we were buddied up in order for me to show them the ropes. The first lesson of R is always the same. Read a CSV, manipulate it a bit, draw a graph. We did it all without…

325

SSH quoting

A while back there was a thread on one of our company mailing lists about SSH quoting, and I posted a long answer to it. Since then a few people have asked me questions that caused me to reach for it, so I thought it might be helpful if I …

329

So You Want to Rust the Linux Kernel?

There has been much discussion of using the Rust language in the Linux kernel (for example, here , here , and here ), at the Kangrejos Rust for Linux Workshop ( here , here , and here ) and 2021 Linux Plumbers Conference had a number of sessions on this topic, as did Maintainers Summit . At least…