Topics /

Software Engineering

The most popular blog posts about software engineering on Hacker News. 14,540 posts.

Any year
8972

Type inference

Type inference is a major feature of several programming languages, most notably languages from the ML family like Haskell. In this post I want to provide a brief overview of type inference, along with a simple Python implementation for a toy ML-like language.

8973

Lessons learned from a successful Rust rewrite

I have written about my on-going rewrite-it-to-Rust effort at work: 1 , 2 , 3 . And now it's finished, meaning it's 100% Rust and 0% C++ - the public C API has not changed, just the implementation, one function at time until the end. Let's have a look back at what worked, what didn't, and what can be done about it.

8975

Extending Emacs with Fennel (2024)

After watching this year’s EmacsConf and seeing Guile Emacs being resurrected I thought to myself - why limit ourselves to Guile? Sure, Guile isn’t just a Scheme implementation, thanks to its compiler-tower-based design. Other languages exist for Guile VM, such as Emacs Lisp, and Guile manual lists the following…

8976

A lowering strategy for control effects in Rust

The Rust language has incrementally grown a set of patterns to support control-flow effects including error handling, iteration, and asynchronous I/O. In The registers of Rust , boats lays out four aspects of this pattern shared by Rust’s three effects. Today these effects are typically used in isolation, or at most…

8978

Bastard Tetris

“For people who enjoy swearing at their computer, Bastet (short for Bastard Tetris) is an attractive alternative to Microsoft Word.” (From http://hublog.hubmed.org)

8979

Geohot presents an evasi0n7 writeup

Hi, I'm on a plane from SFO to New York, and made something for you. Not even a rap song. ******* geohot( @tomcr00se ) presents an evasi0n7 writeup ******* == Intro == I was bored, reversed, wrote this write-up, and wanted to do something with it. I tried to sell it to the Chinese for $7 and a trip to the Pizza Hut…

8981

Verified curl

Don't trust. Verify. I could not resist making a fake book cover Here follows a brief description on how you can detect if the curl package would ever make an xz. xz (and its library liblzma) was presumably selected as a target because it is an often used component and by extension via systemd it … Continue reading…

8982

Time on Unix

An article covering everything you need to know about time on Unix. Time, a word that is entangled in everything in our lives, something we're intimately familiar with. Keeping track of it is important for many activities we do.

8984

Audio from Scratch with Go: Extracting Breakpoints

So far everything we’ve done with breakpoints involved us creating a breakpoint file and using this to automate part of a track. Now we’ll take a look at how we can take an existing track and extract some breakpoints from this. For this post, we’ll take a look at extracting the amplitudes from the .wave files, as this…

8985

Serverless collaborative editor using CRDT

Previously I've worked on a collaborative tool, which worked like Google Docs. This project was called crepl . Because I stopped paying for hosting of its server, that project is now offline. That made me consider: what if a collaborative editor wouldn't need a server?

8990

Asynchronous Programming in Rust

Asynchronous programming in Rust continues to make exciting strides, including the upcoming stabilization of the futures API . But, while these core APIs make it possible to write async Rust code today, it's not easy: it's a far cry from the smoothness of synchronous code.

8995

C Strings and my slow descent to madness

I’ve been on a C kick recently as I learn the intricacies involved in low level programming. As a Data Scientist/Python Programmer I work with strings all the time. People say that handling strings in C range anywhere from tricky to downright awful. I was curious so I decided to see how deep the rabbit hole went.

8997

JITs are un-ergonomic

I lift my LAMP beside the github door. Keep ancient Fortran your storied numeric libs cries she. Give me your interpreted, your slow, the wretched refuse of your (insert pun for ‘teeming shore’).