Top posts
Every blog post that took off on Hacker News, ranked by the votes of its best submission. 21,834 posts.
Repairing Corrupted ZIP Files by Brute Force Scanning in C
My brother is a wonderful photographer , and took 14 gigabytes of photos at my recent graduation from Columbia, some of which I hope to post on PhotoFloat -- my web 2.0 photo gallery done right via static JSON & dynamic javascript .
"Unstripping" binaries: Restoring debugging information in GDB with Pwndbg
GDB loses significant functionality when debugging binaries that lack debugging symbols (also known as “stripped binaries”). Function and variable names become meaningless addresses; setting breakpoints requires tracking down relevant function addresses from an external source; and printing out structured values…
Stetho: A new debugging platform for Android
Visit the post for more.
The practice of programming, 18 years later
Over the new year holiday time I had a chance to get away from it all, and snuck up to Finland to sit in a lodge on the Gulf of Finland, sip coffee, take saunas and read. I brought along a few books, the only programming one being Brian W …
I wrote a beginners guide to Kubernetes
In this multi-part series of articles I'll try and capture everything I think someone who wants to learn and work with Kubernetes should know about. If you h...
Clojure: Managing throughput with virtual threads
A blog mostly about Clojure programming
Jailed Just-in-Time Compilation on iOS
Saagar Jha's website.
An Introduction to Conflict-Free Replicated Data Types
This is an interactive tutorial series about Conflict-Free Replicated Data Types, or CRDTs for short. Their purpose is to allow seamless replication of data on different nodes in a distributed system. Merging is by construction always possible, without any conflicts. This series assumes no knowledge about CRDTs, but…
Lessons Learned in Software Development
Here is my list of heuristics and rules of thumb for software development that I have found useful over the years: Development 1. Start small, then extend. Whether creating a new system, or …
What Every C Programmer Should Know About Undefined Behavior #3/3
In Part 1 of the series, we took a look at undefined behavior in C and showed some cases where it allows C to be more performant than "safe" languages.
Clang++ Builds Boost
Boost is a collection of open-source, peer-reviewed C++ libraries that's well-known for having many good utility components for C++ programmers. It's also well-known for using bleeding-edge C++ techniques, such as extensive template and preprocessor metaprogramming, that have pushed many C++ compilers beyond their…
Recursive Functions of Symbolic Expressions and Their Computation by Machine
This paper appeared in Communications of the ACM in April 1960. It is the original paper on Lisp.
Python's “disappointing” superpowers
A response to Hillel Wayne’s “I am disappointed by dynamic typing”
Why engineers can't be rational about programming languages
The neuroscience of why we make million dollar decisions based on identity, not data.
Nearly all binary searches and mergesorts are broken (2006)
Posted by Joshua Bloch, Software EngineerI remember vividly Jon Bentley's first Algorithms lecture at CMU, where he asked all of us incoming Ph.D. ...
Your code may be elegant, but mine works
OmniTI Seeds: leaf; This article expresses an opinion or just a downright rant.
A Tour of the Acme Editor
People I work with recognize my computer easily: it's the one with nothing but yellow windows and blue bars on the screen. That's the text editor acme, written by Rob Pike for Plan 9 in the early 1990s. Acme focuses entirely on the idea of text as user interface. It's difficult to explain acme without seeing it…
Android libstagefright still exploitable
Update (2015-08-13 1:16pm CST): We’ve been in contact with Zimperium and are working with them to provide coverage for detection of this flaw through their Stagefright Detector app. They have been very responsive (more so than the affected vendor) and we plan to alert them of similar flaws we’ve recently discovered…
PEP 584 – Add + and – operators to the built-in dict class
This PEP proposes adding merge (|) and update (|=) operators to the built-in dict class.
On Building Git for Lawyers
Building git for lawyers at Version Story (YC W21) — versionstory.com
How I like to install NixOS (declaratively)
For one of my network storage PC builds, I was looking for an alternative to Flatcar Container Linux and tried out NixOS again (after an almost 10 year break). There are many ways to install NixOS, and in this article I will outline how I like to install NixOS on physical hardware or virtual machines: over the network…
A concrete example of what goes wrong with Apple's docs
Projects and thoughts from James Porter
GPT-4 Turbo with Vision is a step backwards for coding
OpenAI’s GPT-4 Turbo with Vision model scores worse on aider’s code editing benchmarks than all the previous GPT-4 models. In particular, it seems much more prone to “lazy coding” than the existing GPT-4 Turbo “preview” models.