Topics /
Software Engineering
The most popular blog posts about software engineering on Hacker News. 1,517 posts.
When it comes to Git history, less is more
One person's entry-level contribution is another person's difficult bugfix or backport.
Dolphin Emulator - Dolphin MEGA Progress Report: April and May 2021
After finishing up the macOS M1 article the blog staff took a little break. Then they saw the date. Upon looking at the actual changelog, however, something became readily apparent: this wasn't going to be just a progress report; this was going to be a MEGA Progress Report. The long rumored time era of developers…
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.
Notes from the Meeting on Python GIL Removal Between Python Core and Sam Gross
During the annual Python core development sprint we held a meeting with Sam Gross, the author of nogil, a fork of Python 3.9 that removes the GIL. This is a non-linear summary of the meeting.
Parcel 2 Beta 3 – improved build performance
The Parcel team is excited to release Parcel 2 beta 3! This release includes a ground up rewrite of our JavaScript compiler in Rust, which improves overall build performance by up to 10x. In addition, this post will cover some other improvements we’ve made to Parcel since our last update, along with our roadmap to a…
Crystal 1.1.0
We are releasing the first post-1.0 release, making efforts to keep our promise of making regular releases each 3 months, a bit delayed because of the conference, and with special focus on keeping the language stability. Below we list the most important or interesting changes, without mentioning the several bugfixes…
Hierarchical Structures in PostgreSQL (2020)
Modelling hierarchical/team/categorical/tag data with arbitrary depths.
Native Rust Support on Cloudflare Workers
Introducing the Cloudflare Workers Rust SDK: write your entire Worker in Rust, no JavaScript required.
Domain-Driven Design
A definition of DDD as a software design discipline
Fast-Paced Multiplayer (Part I): Client-Server Game Architecture
Client-Server Game Architecture | Client-Side Prediction and Server Reconciliation | Entity Interpolation | Lag Compensation | Live Demo
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
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.
Comparing SQLite, DuckDB and Arrow with UN trade data
This is not a competition, is just to show how to use the hardware with relative efficiency, being the idea is to show something collaborative rather than competitive.
Fans of a 2013 Japanese soccer game tracked down a bizarre floating point bug
Many gaming communities over the years have reached out to thank emulator developers for their efforts. Emulators are an important part of many classic game communities and give players access to features like netplay multiplayer, modding, and savestates, while also opening up the doors to enhancements not possible on…
Building video chat into my personal website using WebRTC, WebSockets, and Go
Recently I've become more and more interested in how WebRTC works, so a few weeks ago I decided to add a page to my website where I could set up peer-to-peer video chats. There are plenty of libraries and services out there to make this extremely easy, but knowing that WebRTC is now well supported natively across…
Behind GitHub’s new authentication token formats
We’re excited to share a deep dive into how our new authentication token formats are built and how these improvements are keeping your tokens more secure. As we continue to…
Red and blue functions are a good thing
By avoiding effect aware functions a language hobbles engineers and makes programs sloppier than they could be.
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…
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…
Coverage is not strongly correlated with test suite effectiveness
One of my recent hobby projects was a blocks-based tool for doing basic data science , and I was very pleased when its test suite reached 100% line coverage. However, Inozemtseva2014 found that code coverage is a poor predictor of how effective a test suite is at detecting bugs once the size of the test suite is…
Java on Truffle – Going Fully Metacircular
Up until now, GraalVM has offered two ways to run Java programs: using the Java HotSpot VM with the GraalVM JIT (just-in-time) compiler…
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…
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…
Lets talk about changelogs (how I loathe 'bugfixes and performance improvements)
Published: 02-01-2021 | Author: Remy van Elst | Text only version of this article
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 …
Book Review: A Philosophy of Software Design (2020)
View this page on my new site This review is largely in response to the article "It's probably time to stop recommending Clean Code", and the ensuing Redd...
Improving Shell Workflows with Fzf
I show how I improved four of my shell workflows to parameter-less commands with the help of fzf.