Difftastic, the fantastic diff
programming, language design, and human factors
Topics /
The most popular blog posts about software engineering on Hacker News. 14,530 posts.
programming, language design, and human factors
You might have heard people say that functional programming is more academic, and real engineering is done in imperative style. I’m going to show you that real engineering is functional, and …
ASCII delimited text solves the problems exporting and importing structured text files and is part of the design of the character set. Unfortunately a lot of people and systems use CSV and other pr…
Monica Dinculescu's blog
For years, a trend in our industry has been to build single-page apps, or SPAs. With an SPA, the entire site or app lives in a single HTML file. After the initial load, everything about the app is handled with JavaScript. This is, in theory, supposed to result in web apps that feel as fast and snappy as native apps…
What is the complete path between visiting thepiratebay and sublimating an mp3 file from thin air? In this post, we'll implement enough of the BitTorrent protocol to download Debian. Look at the [Source code](https://github.com/veggiedefender/torrent-client/) or skip to the [last…
For some reason or other, people have been posting a lot of excerpts from old emails on Twitter over the last few days. The most vital question everybody’s asking themselves is: What’s …
A visual introduction to big O notation.
A (directed) graph is a set of nodes, connected by arrows (edges). The nodes and edges may contain data. Here are some graphs: All graphs made with graphviz (source) Graphs are ubiquitous in software engineering: Package dependencies form directed graphs, as do module imports. The internet is a graph of links between…
We explore how to build local-first sync on top of simple file storage
TLDR: read the paper and view the gallery of pretty Perl programs. In this paper, we aim to answer a long-standing open problem in the programming languages community: is it possible to smear paint on the wall without creating valid Perl?
20 HTML tips with examples: mailto and tel links, opening links in a new tab, lazy loading, a native accordion, range sliders, download links and more.
Pi now supports MCP. Why we changed our minds, what changed in MCP and in Pi, and what Codemode is.
Achieving Data Freedom Through Open Source and Rust
A compiler is just a program that translates other programs. Traditional compilers translate source code into executable machine code that your computer understands. (Some compilers translate source code into another programming language. These compilers are called source-to-source translators or transpilers.) LLVM is…
Some researchers in France put together a comparison showing lots of ways you could implement realtime collaborative editing (like Google Docs). They implemented lots of algorithms - CRDTs and OT algorithms and stuff. And they benchmarked them all to see how they perform. (Cool!!) Some algorithms worked reasonably…
If you ever watch someone “coding”, you might see them spending far more time staring into space than typing on their keyboard.
The Maersk Triple-E Class container ship is 1,300 feet long, carries over 18,000 containers across 11,000 miles between Europe and Asia, and… Its entire crew can fit inside a passenger van. As a former naval architect and a current marketing consultant to startups, I found that
If you want to read more of my writing, I have a Substack . Articles will be posted simultaneously to both places.
An Awk tutorial by example. Learn practical Awk incantations in just a few minutes.
rga is a line-oriented search tool that allows you to look for a regex in a multitude of file types. rga wraps the awesome ripgrep and enables it to search in pdf, docx, sqlite, jpg, zip, tar.*, movie subtitles (mkv, mp4), etc. ExamplesPDFs Say you have a large folder of papers or lecture slides,
A deep dive into the text mode editors we had and how they compare to today's
Zig has one of the most stringent anti-LLM policies of any major open source project: No LLMs for issues. No LLMs for pull requests. No LLMs for comments on the …
Okay, campers, rise and shine...