Topics /

Software Engineering

The most popular blog posts about software engineering on Hacker News. 21,828 posts.

Any year
6511

Show HN: QBE – a new compiler back end

QBE is a compiler backend that aims to provide 70% of the performance of industrial optimizing compilers in 10% of the code. QBE fosters language innovation by offering a compact user-friendly and performant backend. The size limit constrains QBE to focus on the essential and prevents embarking on a never-ending path…

6513

React v16.3.0: New lifecycles and context API

This blog site has been archived. Go to react.dev/blog to see the recent posts. A few days ago, we wrote a post about upcoming changes to our legacy lifecycle methods, including gradual migration strategies. In React 16.3.0, we are adding a few new lifecycle methods to assist with that migration. We are also…

6514

The Ten Commandments for C Programmers (1987)

``Frequently'' means thou shouldst draw thy daily guidance from it, rather than hoping thy code will achieve lint's blessing by a sudden act of repentance at the last minute. De-linting a program which has never been linted before is often a cleaning of the stables such as thou wouldst not wish on thy worst enemies…

6521

Emacs for Professionals

This is a series of brief articles aimed at teaching Emacs to computer professionals who are unfamiliar with it. I do not dwell on the basics of the user interface, which can be learned from the built-in tutorial. Instead, each article in this series will distill one very specific command line (CLI) tool or technique…

6523

GitHub Actions Pitfalls

During one of my assignments, I worked with GitHub Actions pretty much every day. I implemented workflows, created new actions, and helped people migrate their projects from jenkins to actions. As much as I like actions – and I like them a lot – there are some things that caught me off guard. I have collected some of…

6525

A bug I wish I hadn't caught

When I catch a bug before release I’m usually glad, because I’ve narrowly averted ruining someone’s experience or eating their data. Today I found a bug that I wish I hadn’t caught, a bug that I wish I’d released into the wild to witness in its full glory. I found this bug in my digital card game Ring of Worlds, and…

6528

Nix wrote half of my debugger

A few days ago I wrote about Rewind VM, a deterministic VM where every run of a Nix build is a pure function of its inputs, thread schedule included! I have been using it to find, reproduce and solve numerous race conditions in Nix builds, but it’s been making me feel a little crazy. What is this superpower, and why…

6530

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 …

6532

Code-GUI bidirectional editing via LSP

I built a small proof-of-concept for a system that enables real-time bidirectional editing between any modern code editor and a GUI, enabled by an LSP1 server. Code-based CAD I like working on small projects at home that benefit from CAD. I’m also a programmer with a personal development environment that I’ve spent…

6533

Janet for Mortals (2023)

I wrote a book. It’s called Janet for Mortals, and it’s free, and it’s on the internet, and you can read it right now. And you should read it right now, instead of reading this blog post, because this blog post is not very interesting if you haven’t read the book. Heck, this blog post is not very interesting even if…

6539

Redis Geo

Note (version) : I wrote this originally as a Redis module in early 2014, then Redis included a modified version directly into official Redis releases in 2016. Note (implementation) : The implementation included with Redis 3.2+ changed some parameter orderings from my original (intentional, well-thought-out) design…