Topics /
Software Engineering
The most popular blog posts about software engineering on Hacker News. 21,842 posts.
Higher-kinded bounded polymorphism in OCaml (2021)
How bounded higher-kinded polymorphism arises in practice, and how to express it in OCaml, in several different ways. Some ways are rather concise -- but less widely known.
Allocator Designs
This post explains how to implement heap allocators from scratch. It presents and discusses different allocator designs, including bump allocation, li…
Turnstyle – An esoteric, graphical functional language
An esoteric, graphical functional language
Recurrent Neural Network Tutorial for Artists (2017)
Recurrent Neural Network Tutorial for Artists
Useful Postgres Extension: Pg_stat_statements
Inspired by a talk in the PostgreSQL devroom at FOSDEM, a post on the usefulness of the pg_stat_statements extension to Postgres and why every Postgres developer should have it in their toolbox. With sections on getting started, and how to extract insights with pg_stat_statements.
Don’t use environment variables for configuration
Suppose you need to create a function for adding two numbers together in plain C. How would you write it? What sort of an API would it have?...
JSON Schema bundling formalised
JSON Schema
The Emacsen family, the design of an Emacs and the importance of Lisp (2023)
00:00.000 Introduction 00:17.000 Why Lisp matters 01:26.640 Why Emacs Lisp was chosen 02:54.841 Other "Emacsen" 03:38.581 Why not Common Lisp? 06:39.120 Common Lisp is still not dead or is always dead 08:30.080 Lem is a nice Emacsen implementation 08:58.260 Why not just use GNU Emacs? 10:31.080 Why Lem 14:03.080…
Blocking code is a leaky abstraction
Asynchronous code does not require the rest of your code to be asynchronous. I can’t say the same for blocking code.
Amplifying C (2010)
On C++ Having programmed in C++ professionally for well over 10 years I have learned all of it. I have all the books, I know all the tricks...
How Class-based Programming Sucks (2011)
Classes encourage pervasive mutable state, provide only an indirect support for closures, and do not support algebraic data types. I'd like to fix that.
So Long Surrogates: How We Moved to UTF-8 in Haskell
We illustrate how we implemented UTF-8 support in alfred-margaret and give some insights into how we optimized our Haskell code for performance.
Go kit: Go in the modern enterprise
Peter Bourgon has a web site, and this is that web site.
Why Kakoune
Recently I’ve stumbled upon a video about Kakoune, a code editor: Idiot user tries to use Kakoune (for notes? Also Helix?). Funnily enough, I was mentioned in this video, which was a surprise, and made me laugh for quite a while: Let’s go back to the official plugins page.
Interview with Go’s Russ Cox and Sameer Ajmani
We interview Russ Cox and Sameer Ajmani, two CS PhDs behind Google's development of the Go programming language.
How we built Facebook Lite for every Android phone and network
Visit the post for more.
Pixie: A sweet Clojure-ish language
It's likely no secret that I really dig Clojure . It's the first unityped language I've used since Objective-C in the early 90s that I really like. Yes, I still love Scala , but I think Clojure is pretty much the best designed computer language I've ever used... and maybe that's because Clojure is mostly "less is…
Stop using utcnow and utcfromtimestamp
A public service announcement about the dangers of utcnow and utcfromtimestamp and the benefits of using their replacements.
What Is Rust's Unsafe? (2019)
I’ve seen a lot of misconceptions around what the unsafe keyword means for the utility and validity of Rust and its marketing as a “safe systems language”. The truth is a lot more complicated than a single pithy tweet can possibly sum up, unfortunately; here it is as I see it.
Improved default settings for Linux machines
A quick overview of Linux settings I change on almost every machine I manage.