Topics /
Software Engineering
The most popular blog posts about software engineering on Hacker News. 14,540 posts.
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.
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.
I Will File Bugs for You (2014)
This post prompted by Aaron Klotz’s Diffusion of Responsibility and Sumana Harihareswara’s Inessential Weirdnesses in Open Source .
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…
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…
The gap between learning code and producing usable software
One of the unspoken areas about software development is building usable software.
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)
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…
Throughput vs. Latency and Lock-Free vs. Wait-Free
On the previous post we showed an excellent presentation by Cliff Click, and one of the things he mentions is that there is performance for ...
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…
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.
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…
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?
Async.h – asynchronous, stackless subroutines in C
The async/await idiom is becoming increasingly popular. The first widely used language to include it was C#, and it has now spread into Jav...
Ritchie, Stroustrup, and Gosling interview
This article appeared in Java Report, 5(7), July 2000 and C++ Report, 12(7), July/August 2000 .
Phoenix LiveView: Async Assign Pattern
UPDATE: LiveView has added a built in, more robust way of using this pattern. Check it out here ! I've been using LiveView for about two ye...
Inverse Kinematics and Foot Locking
Computer Science, Machine Learning, Programming, Art, Mathematics, Philosophy, and Short Fiction
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.
The Little Redis Book
Karl Seguin's Blog - A mix of coding and creative writing
Yak Shaving – Swift Edition
Miguel de Icaza's Blog
Why can't I write code inside my browser?
Notes on rethinking browsers
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.
I don’t buy “duplication is cheaper than the wrong abstraction” (2021)
Note: If you disagree with what’s expressed in this post, I encourage you to also take a look at my more nuanced and comprehensive post on the topic of code duplication, which gives a more thorough refutation of some of the popular ideas around duplication. “Duplication is cheaper than the wrong abstraction” is a…
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’).
Features of a dream programming language
Update: Be sure to read the improved 2nd draft of this article instead. The following content is the...
Go Is a Shop-Built Jig
Alex Payne wrote an excellent essay called Thoughts on Five Years of Emerging Languages. It called to mind something I wrote a while ago for a …