Topics /

Software Engineering

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

Any year
16262

A Failed Experiment with Python Type Annotations

I like Python, but wish it had static typing. The added safety would go a long way to improving quality and reducing development time. So today I tried to make use of type annotations and a static type-checker called mypy. After a few basic tests, I was excited. But my glee turned to disappointment rather […]

16263

Rootless Pings in Rust

Sending a ping by creating an ICMP socket normally requires root: you can’t create a raw socket to send ICMP packets without it. The ping command line tool works without root however, how is that possible? It turns out you can create a UDP socket with a protocol flag, which allows you to send the ping rootless. I…

16264

More on GVFS

After watching a couple of days of GVFS conversation, I want to add a few things. What problems are we solving? GVFS (and the related Git optimizations) really solves 4 distinct problems: A large number of files – Git doesn’t naturally work well with hundreds of thousands or millions of files in your working set…

16284

PostgreSQL 16 Bi-Directional Logical Replication

Introduction In this blog, we'll be going over some more advanced topics new in Postgres 16. Having some experience with Linux, Postgres, and SQL is necessary as we'll not only be going over these new features but also how to implement them. This blog was written using PostgreSQL 16 (Development Version) running on…

16288

My ideal Rust workflow

Writing Rust is pretty neat. But you know what’s even neater? Continuously testing Rust, releasing Rust, and eventually, shipping Rust to production. And for that, we want more than plug-in for a c...

16290

RaptorQ and performance optimization in Rust

I recently decided to learn more about Rust, and wrote a high performance RaptorQ (RFC6330) library. RaptorQ is a fountain code, and the core of the algorithm is a lot of matrix math over GF(256) – which translates into lots of XORs and reads from lookup tables. After getting the initial implementation working, I set…