HNHacker News
TopNewBestAskShowJobs

grahamlee

685 karma · joined November 21, 2018

Has a PhD in software engineering and explains how to make better software engineers using AI. https://patreon.com/chironcodex
submissionscomments
grahamlee··on What Sun got wrong
The Sun model of beefy server, ultra-thin client worked incredibly well and presaged the widespread adoption of virtualisation that eventually led to cloud computing and containerised software. Unfortunately that model made it very easy to undercut their prices using commodity hardware; I managed a Solaris/Sun Ray network c.2004 and it was cheaper to switch to Linux/Intel and buy spare hardware to keep in a cupboard “just in case” than to keep the Sun network going through its support contract.
grahamlee··on About the security content of macOS Tahoe 26.6
And it's not actually that much information "about the security content". For example: "Impact: An app may be able to access sensitive user data. Description: An access issue was addressed with additional sandbox restrictions." This references CVE-2026-43819, which doesn't have any more information. Compare this with the nearly decade-old https://support.apple.com/en-gb/103680, and you see much more specific information about problems and their remedies (except in situations where Apple's action was to update a vendor component).
grahamlee··on Our position on open-weights models
Ctrl-H is the rubout/backspace command on old terminals. So if I say it's nuts^H^H^H^Hunwise to ignore UNIX history, I've erased the first word and replaced it with the second.
grahamlee··on Swift Package Index joins Apple
Agreed, congratulations are in order!
grahamlee··on Open source does not imply open community
If you look at the Open Source Definition, you see the four freedoms: https://opensource.org/osd

That’s unsurprising because the OSD is based on the Debian social contract, and Debian is a GNU distribution.

grahamlee··on Apple discontinues the Mac Pro
so many peripherals now come in external boxes that communicate _incredibly quickly_ over Thunderbolt 4/5 that the need for PCIe is marginal, while the cost to support it is significant.
grahamlee··on Is legal the same as legitimate: AI reimplementation and the erosion of copyleft
but the point of an EULA is to restrict distribution, so AGPL3 can help there.
grahamlee··on Is legal the same as legitimate: AI reimplementation and the erosion of copyleft
It's clear that we're entering a new era of copyright _expectations_ (whether we get new _legislation_ is different), but for now realise this: the people like me who like copyleft can do this too. We can take software we like, point an agent at it, and tell it to make a new version with the AGPL3.0-or-later badge on the front.
grahamlee··on How AI assistance impacts the formation of coding skills
I’ve been making the case (e.g. https://youtu.be/uL8LiUu9M64?si=-XBHFMrz99VZsaAa [1]) that we have to be intentional about using AI to augment our skills, rather than outsourcing understanding: great to see Anthropic confirming that.

[1] plug: this is a video about the Patreon community I founded to do exactly that. Just want to make sure you’re aware that’s the pitch before you do ahead and watch.

grahamlee··on A16z-backed Doublespeed hacked, revealing what its AI-generated accounts promote
OK thanks for clarifying your reasoning!
grahamlee··on A16z-backed Doublespeed hacked, revealing what its AI-generated accounts promote
As the submitter, I want to point out that I submitted this post with the original title. The one that makes it clear a16z are behind the social media astroturfing. The mods changed the title.
grahamlee··on A Remarkable Assertion from A16Z
These modern times that literally began in 1769. Oxford English Dictionary, “literally (adv.), sense I.1.c,” June 2025, https://doi.org/10.1093/OED/9189024563.
grahamlee··on When did people favor composition over inheritance?
What you lose by using composition is that the composing object is no longer a subtype of the constituent object, so you can't use it as a "decoration" of the original object in a program that expects an instance of the original.
grahamlee··on When did people favor composition over inheritance?
Article author here. Your idea "gluing together things that don't know necessarily know about each other" is basically what the GoF book means: composition is "this object has a reference to that object and uses its public API". They don't mean "this object ontologically contains an instance of that object" in the sense that a car "has" an engine, which is a narrower definition of composition that people frequently use.

It's that broader version of composition—particularly in its extreme realization, delegation—that underlies a lot of the behavioral patterns in the book. For example, the State and Strategy patterns boil down to "this object relies on another object to fill in the behavior here, and there are ways to choose what that other object is", which is something it's easy to arrange with subclassing and the only point of the pattern is to avoid subclassing.

grahamlee··on When did people favor composition over inheritance?
Author here. I wrote “ But even a modestly more recent language like Java has visibility attributes that let a class control what its subtypes can view or change, meaning that any modification in a subclass can be designed before we even know that a subtype is needed.” which covers your situation: if you need to ensure that subtypes use the supertype’s behaviour in limited ways, use the visibility modifiers and `final` modifier to impose those limits.
grahamlee··on Étoilé – desktop built on GNUStep
David Chisnall is now at MS Research and does cool things with CHERI making a computing platform that's memory-safe by default.
grahamlee··on Dilbert creator Scott Adams says he will die soon from same cancer as Joe Biden
That makes 4 and 9 the only two uninteresting numbers, which is interesting, so they’re out too!

Douglas Adams said the same about 42. It’s the answer because it’s completely banal.

grahamlee··on Dijkstra On the foolishness of "natural language programming"
_A Discipline of Programming_
grahamlee··on Dijkstra On the foolishness of "natural language programming"
Dijkstra also advocated for proving the correctness of imperative code using the composition of a set of simple rules, and most programmers ignore that aspect of his work too.
grahamlee··on Nostalgia for Physical Media
The presented story has to make sense to the audience, and showing two characters interacting with an isolinear chip, data crystal or whatever hints at "she just gave him a futuristic floppy disc with the plans for Chekhov's Gun" more than claiming to have sent a sharing link via IM.
grahamlee··on XOR
My handy real-world analogy for XOR is the light over a staircase in a home. There's a switch at the bottom, and another switch at the top, and both control the same light. Initially, they're both in the off position. You set the bottom switch, and the light turns on. You climb the stairs, set the top switch, and the light turns off although both switches are now in the "on" position. As long as one switch is in the "on" position and one switch in the "off" position, the light is on; otherwise, it's off.
grahamlee··on Our channel on YouTube has been deleted due to “spam and deceptive policies”
Another company has a store called Super Mario, and the courts are reasonable enough to realize that they don't compete: https://ticotimes.net/2025/01/30/david-vs-goliath-costa-rica...
grahamlee··on SQL nulls are weird
> The part that’s weird with nulls is that it’s a trinary logic stuffed into a boolean algebra.

It's a three-valued logic (though not trinary, which would use a base-3 number system) in a three-valued algebra: specifically, the relational algebra. The outcome of a logical test has three values: true, false, or NULL; this is distinct from Boole's algebra where outcomes have a continuous value between 0 and 1 inclusive.

grahamlee··on SQL nulls are weird
Exactly this. SQL is based on the relational algebra and that's well-defined, NULL along with other features of SQL work in an entirely regular and predictable way. The only time it's weird is when a developer decides that it should work the way Javascript (or whatever) NULLs work because that's the last time they saw the same word used in a programming language, in which case it's the assumption that's weird.
grahamlee··on Amiga Research Operating System (AROS): Summary of 2024
AROS is also the basis of the ApolloOS fork that the Vampire accelerators people maintain to take advantage of their chips' features. https://www.apollo-computer.com/apolloos.php
grahamlee··on We all took the DVD boom era for granted
Region locking stops (or is designed to stop) someone, for example, in the USA buying a DVD sold in the UK market. The localization of the product on sale isn't relevant to the decision not to sell the product.
grahamlee··on We all took the DVD boom era for granted
It seems to me that the extra features on DVD were originally part of the marketing benefits driving people to adopt the format because the studios preferred it to VHS because of CSS and region-locking. Then they found they had painted themselves into a corner making all these extra features that people came to expect, until finally streaming let them get back to “just the movie”.
grahamlee··on Saint Michael Sword: Are the cathedrals really on a straight line?
I used to read his books as exercises in critical analysis—how does he get from the data to these conclusions, and what does he ignore that doesn't fit his conclusions? Then I discovered that, as stated by Carl Sagan, von Däniken also relies on factual errors in his arguments.
grahamlee··on Saint Michael Sword: Are the cathedrals really on a straight line?
If you add every single other church or shrine that's dedicated to St. Michael to the map, what's the straight line you can draw that contains the most of those locations?
grahamlee··on 1800-2023 – IEEE Standard for SystemVerilog
I read 1800-2023 and thought wow, System Verilog had a great run, shame it's over.
Page 1 of 5Next →