Topics /
Software Engineering
The most popular blog posts about software engineering on Hacker News. 14,540 posts.
Curl doesn't add libproxy due to its quality issues
curl, along with every other Internet tool with aspirations, supports proxies. A proxy is a (usually known) middle-man in a network operation; instead of going directly to the remote end server, the client goes via a proxy. curl has supported proxies since the day it was born. Which proxy? Applications that do…
Python Shortcuts for the Python Beginner
The following are just a collection of some useful shortcuts and tools I've found in Python over the years. Hopefully you find them helpful.
Rebuilding memchess.com from its archive
Learn chess openings and variations online by repeating the most popular chess Master moves
Zero downtime migrations
As a backend developer at a mobile app company, a common task was migrating a database schema.This could be to improve query performance, change column ...
Reproducible Git Bundles
Describes how to create reproducible and deterministic one-file bundles of git repositories for use cases such as backups.
Ruby Patterns from GitHub's Codebase
Written pieces, talks, and other bits by Zach Holman.
Scripting tmux
I often want to start similar workspaces in tmux; for example I always want to tail those two log files in a pane , or I always want to start both vim and mysql in a pane, etc.
Visualizing binary files with ImHex's DSL, the "pattern language"
Viewing my binary file with ImHex. The pattern language pane, on the right,...
Tracing HTTP Requests with Go's net/HTTP/httptrace
net/http/httptrace has been in the standard library since Go 1.7 and most Go developers I talk to have never used it. It exposes hooks for the points in an outgoing HTTP request that you usually cannot see from outside the transport: DNS resolution, connection acquisition, TLS handshake, the moment bytes go on the…
Again on 0-based vs. 1-based indexing
André Garzia made a nice blog post called “Lua, a misunderstood language” recently, and unfortunately (but perhaps unsurprisingly) a bulk of HN comments on it was about the age-old 0-based vs. 1-based indexing debate. You see, Lua uses 1-based indexing, and lots of programmers claimed this is unnatural because “every…
Python Is Easy. Go Is Simple. Simple != Easy
Python and Go have distinct qualities that can complement each other.
Switching from Vim to Intellij
From Vim To IntelliJ In the beginning, a love affair For the last 10 years or so, I have been a die-hard Vim user. I was introduced to Vim…
Why our team cancelled our move to microservices
Recently our development team had a small break in our feature delivery schedule. Technical leadership decided that this time would be…
How boring should your team's codebases be
Thoughts on how to keep the novelty in a team at the correct level for easy onboarding
Windows Explorer Through the Years
At a glance comparison of every major Explorer release
The /bin/true Command and Copyright
Lest you think that this is a fluke that was quickly corrected, here is the /bin/true program from AT&T's Sys/V libraries as of 1990:
The carefulness knob
A play in one act Dramatis personae EM, an engineering manager TL, the tech lead for the team X, an engineering manager from a different team Scene 1: A meeting room in an office. The walls are ado…
Lotus Notes and the dangers of starting from scratch
Lotus Notes had encryption, rich text, and read receipts before email did. Why it still failed, and the dangers of starting software from scratch.
MCP vs. API Explained
Model Context Protocol (MCP) is an open standard that connects AI models to tools and data sources efficiently. This guide breaks down MCP’s architecture, benefits, and how it differs from traditional APIs
JJ Cheat Sheet
I’ve been learning Jujutsu a.k.a. jj , a version control system that’s compatible with git repos. It’s clicked for me in a way that git hasn’t even after many years of use.
Do you really want a single-page application framework?
First, sell your soul to the framework maintainer…