Topics /

Software Engineering

The most popular blog posts about software engineering on Hacker News. 1,733 posts.

2023
1442

Unpacking Elixir: Syntax

Elixir is a language with syntactical roots in Ruby. It also carries the Erlang legacy. Legacy used here as in "a great legacy" and not as in "system you don't like anymore". Ruby is an object-oriented language. Elixir is functional language. The Erlang part has an impact as Elixir was designed to provide strong…

1444

Demystifying Tupper's Formula

A book I was recently reading mentioned a mathematical curiosity I haven't seen before - Tupper's self-referential formula . There are some resources about it online, but this post is my attempt to explain how it works - along with an interactive implementation you can try in the browser.

1455

Racket frustrates me

2024-07-06 I’ve archived this post Looking for the post Racket frustrates me? You can read the original post on The Internet Archive’s Wayback Machine. Why archive this post? It’s been about a year since I published this post and since realized something: I don’t have any skin in the game anymore. My workflow is now…

1459

Htmx Is a Erlang

htmx, a disciple of hypermedia , available only in hardcover do not look for alternatives , has been manifesting itself into existence recently ( recently: after 10 years of work 1 ) and has finally reached critical mass 2 .

1461

Escape analysis hates copy elision (2021)

Yesterday Lauri Vasama showed me this awesome Godbolt: struct S { static std::unique_ptr<S> make() noexcept; ~S(); static std::unique_ptr<S> factory() { std::unique_ptr<S> s = S::make(); return M(s); } }; void take_ownership(S*) noexcept; void test() { std::unique_ptr<S> p = S::factory()…

1462

A Personal History of APL (1982)

October 1982 TR-03.214 A PERSONAL HISTORY OF APL by Michael S. Montalbano International Business Machines Corporation General Products Division Santa Teresa Laboratory San Jose, California A PERSONAL HISTORY OF APL Introduction I have several reasons for calling this talk a personal history. For one, I want to make it…

1464

Storing Data in Control Flow

A decision that arises over and over when designing concurrent programs is whether to represent program state in control flow or as data. This post is about what that decision means and how to approach it. Done well, taking program state stored in data and storing it instead in control flow can make programs much…

1466

Kalyn: A self-hosting compiler for x86-64

Over the course of my Spring 2020 semester at Harvey Mudd College , I developed a self-hosting compiler entirely from scratch. This article walks through many interesting parts of the project. It’s laid out so you can just read from beginning to end, but if you’re more interested in a particular topic, feel free to…

1470

Programming is hard

Software is weird. In its basic form, software is this very abstract thing with seemingly little connection to the real world. Yet graphical applications running on a hardware device like a modern phone feel very real, even to people who have no appreciation of what happens within this “black box”. Some pieces of…