Topics /
Software Engineering
The most popular blog posts about software engineering on Hacker News. 21,828 posts.
The TTY demystified (2008)
The TTY subsystem is central to the design of Linux, and UNIX in general. Unfortunately, its importance is often overlooked, and it is difficult to find good introductory articles about it. I believe that a basic understanding of TTYs in Linux is essential for the developer and the advanced user.
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.
LLMs confabulate not hallucinate
Minor terminological nitpick. People often describe the LLM as ‘hallucinating’ information whenever it makes up information which seems like it should fit for a given query even when it is trivially false. While evocative, this isn’t actually correct terminology. We already have a perfect word for this precise…
Swift at Apple: Migrating the Password Monitoring Service from Java
Swift is heavily used in production for building cloud services at Apple, with incredible results. Last year, the Password Monitoring service was rewritten in Swift, handling multiple billions of requests per day from devices all over the world. In comparison with the previous Java service, the updated backend…
Carbon’s most exciting feature is its calling convention
Last week, Chandler Carruth announced Carbon, a potential C++ replacement they’ve been working on for the past two years. It has the usual cool features you expect from a modern language: useful generics, compile-time interfaces/traits/concepts, modules, etc. – but the thing I’m most excited about is a tiny detail…
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…
Cases where full scans are better than indexes
Sometimes you have a lot of data, and one approach to support quick searches is pre-processing it to build an index so a search can involve only looking at a small fraction of the total data. The threshold at which it's worth switching to indexing, though, might be higher than you'd guess. Here are some cases I've…
Unexpected downsides of UUID keys in PostgreSQL
Understand how using UUIDs as primary keys can affect PostgreSQL performance, and how to tweak your index to avoid UUID performance pitfalls.
Qt for WebAssembly Technology Preview
Explore the Qt Blog for the latest insights on e.g. Qt Creator, your go-to source for cross-platform development tips and updates.
Python-based compiler achieves orders-of-magnitude speedups
Codon is a new tool that compiles Python code to run it more efficiently and effectively while allowing for customization and adaptation to various domains.
Why I think Rust is the "language of the future" for systems programming
This four-post series on Rust is intended to introduce you to the language, to teach you about Rust's cool language features, and to give a...
The Flask Mega-Tutorial
You are reading the 2024 edition of the Flask Mega-Tutorial. The complete course is also available to order in e-book and paperback formats from Amazon. Thank you for your support!If you are looking…
Scripting with Go
The Unix shell is pure wizardry. Why shouldn’t it be as easy to write systems programs in Go as it is in the shell? The script library is the secret spell-book that makes this possible.
Don't use DISTINCT as a "join-fixer"
Using DISTINCT to fix duplicate rows from a SQL join is a common antipattern. It generates all the duplicates first, then sorts them away - hurting performance. Learn how to rewrite these queries using EXISTS for cleaner, faster SQL Server results.
Anti-patterns in event-driven architecture
Event-driven architecture is great, but it can cause a lot of headaches if it is used for the wrong purpose.
How Shopify Uses WebAssembly Outside of the Browser
At Shopify, we’re keeping the flexibility of untrusted Partner code, but executing it on our own infrastructure with WebAssembly.
Libc++'s Implementation of std::string
I. Introduction
WordPerfect for UNIX (1992)
I found this interesting print-ad for WordPerfect for UNIX, apparently the best UNIX product of 1992! (Very) Belated congratulations Corel!
How I made a website with Svelte
Just like last year, I made a list of the best media I enjoyed over the year. This includes music, films, series and games.
Colorize Your CLI
A passionate engineering student who writes about Unix related topics and tech stuff.
Light Table 0.7.0
Light Table 0.7.0 just went out, and in addition to being a fairly major update, we’ve got some fairly major news to accompany it. Some people expressed concern after Chris’s blog post about Eve that Light Table was being abandoned or forgotten, but hopefully some of the announcements today can assuage those concerns…
AWS documentation is now open source and on GitHub
Earlier this year we made the AWS SDK developer guides available as GitHub repos (all found within the awsdocs organization) and invited interested parties to contribute changes and improvements in the form of pull requests. Today we are adding over 138 additional developer and user guides to the organization, and we…
Designing a programming language to speedrun Advent of Code
“shouldn’t this have been published a few months ago?” yeah, probably. I even considered submitting it to the AoC contest. time is a real beast. The title is clickbait. I did not design and implement a programming language for the sole or even primary purpose of leaderboarding on Advent of Code. It just turned out…
Crafting Interpreters with Rust: On Garbage Collection
I became interested in implementing programming languages a few years ago and discovered [Crafting Interpreters](https://craftinginterpreters.com/) by Bob Nystrom. At the time, I had experience with Rust and decided to use it to follow the book. Albeit, being a noob, I managed to implement a fully functional bytecode…