Topics /
Software Engineering
The most popular blog posts about software engineering on Hacker News. 21,833 posts.
A Bourne-style shell built from scratch in 35 minutes [video]
We build a shell in the style of the Bourne shell, Bash, zsh, etc. It supports (1) running commands with arbitrarily many arguments, (2) quoting those arguments, and (3) combining the commands into arbitrarily long pipelines where the output of one command becomes the input of the next. This requires writing a parser…
Understanding the Worst .NET Vulnerability
In this post I discuss request smuggling, the recent vulnerability in ASP.NET Core with a severity score of 9.9, and how attackers could exploit it
Finding Java Thread Leaks with JDK Flight Recorder and a Bit of SQL
The other day at work, we had a situation where we suspected a thread leak in one particular service, i.e. code which continuously starts new threads, without taking care of ever stopping them again. …
Perils of Constructors
One of my favorite blog posts about Rust is Things Rust Shipped Without by Graydon Hoare. To me, footguns that don't exist in a language are usually more important than expressiveness. In this slightly philosophical essay, I want to tell about a missing Rust feature I especially like: constructors.
SQLite Release 3.8.11.1
A complete list of SQLite releases in a single page and a chronology are both also available. A detailed history of every check-in is available at SQLite version control site .
Implementing "seen by" functionality with Postgres
Different approaches for tracking visitor counts with PostgreSQL.
TLA+ model checking made symbolic
TLA+ model checking made symbolic Konnov et al., OOPSLA’19 TLA+ is a formal specification language (Temporal Logic of Actions) particularly well suited to reasoning about distributed algorith…
SedonaDB: A new geospatial DataFrame library written in Rust
Apache Sedona is a cluster computing system for processing large-scale spatial data. Sedona extends existing cluster computing systems, such as Apache Spark, Apache Flink, and Snowflake, with a set of out-of-the-box distributed Spatial Datasets and Spatial SQL that efficiently load, process, and analyze large-scale…
Demystifying Apache Arrow (2020)
Demystifying Apache Arrow - some observations from a data scientist. Learning more about a tool that can filter and aggregate two billion rows on a laptop in two seconds
Rustc_codegen_GCC can now bootstrap rustc
Antoyo's Personal Blog
How we built Flow
A journey in inception, design and technology
Astronomical Calculations for Hard SF in Common Lisp
Hard SF worldbuilding with the HYG database, Dijkstra's algorithm, and Lisp.
Chess@home: Building the largest Chess AI ever (in JavaScript)
Update: We’ve won Node Knockout in the “Completeness” category ! Congrats to the team!
Zed Decoded: Rope and SumTree
From the Zed Blog: In this episode of Zed Decoded, Thorsten asks the founders — Nathan, Max, Antonio — about the data structures at the heart of Zed: Rope and SumTree.
Building your own CLI coding agent with Pydantic-AI
How to build a CLI coding agent
Sencha Touch 2.0
Sencha Touch 2.0 is built for amazing apps, delivering a faster core, improved performance, and powerful tools for mobile app development.
RailsCasts Retrospective Part 1: The Fuel
Sixteen years ago to the day, I started RailsCasts, a screencast series teaching web development using Ruby on Rails. It began with free weekly episodes…
Using JDK 9 Memory Order Modes
This guide is mainly intended for expert programmers familiar with Java concurrency, but unfamiliar with the memory order modes available in JDK 9 provided by VarHandles. Mostly, it focuses on how to think about modes when developing parallel software. Feel free to first read the Summary .
Overview of Running an Online Game for 3 Years
It’s been roughly 3 years since DDraceNetwork (DDNet) started in the summer of 2013. Last year I wrote a non-technical History of DDNet . Today in this post we will dive into the technical side of what makes DDNet run.
PostgreSQL Templates
What are PostgreSQL templates and what are they used for?