HN user

grahamlee

665 karma

Has a PhD in software engineering and explains how to make better software engineers using AI. https://patreon.com/chironcodex

Posts37
Comments121
View on HN
www.sicpers.info 6d ago

End of Line: Replacing MCP with Standard Filesystem Tools

grahamlee
3pts1
www.sicpers.info 26d ago

Free Software and LLM Contribution Policies

grahamlee
3pts0
www.sicpers.info 3mo ago

Art or Tool?

grahamlee
1pts0
www.patreon.com 3mo ago

Preprint Review: "Intelligent AI Delegation"

grahamlee
3pts0
codeberg.org 4mo ago

AppScript: Objective-C Without the C

grahamlee
1pts0
www.patreon.com 4mo ago

I made a 1990s UML+Java Dev Shop out of AI

grahamlee
1pts0
library.chironcodex.com 4mo ago

Patterns in AI-Augmented Software Development

grahamlee
10pts0
www.youtube.com 5mo ago

When to Vibe Code?

grahamlee
2pts0
www.sicpers.info 5mo ago

Opinionated Read: How AI Impacts Skill Formation

grahamlee
1pts0
www.404media.co 7mo ago

A16z-backed Doublespeed hacked, revealing what its AI-generated accounts promote

grahamlee
292pts170
www.gnu.org 1y ago

GNU G-Golf Gnome: (Guile Object Library For)

grahamlee
3pts0
www.theguardian.com 2y ago

Update law on computer evidence to avoid Horizon repeat, ministers urged

grahamlee
21pts1
c4ss.org 3y ago

Venture Communism (2014)

grahamlee
1pts0
www.sicpers.info 4y ago

On the locations of the bullet holes on bombers that land successfully

grahamlee
1pts0
twitter.com 4y ago

Given that WebKit is LGPL, why can’t I replace the [iOS] WebKit with my own?

grahamlee
19pts2
www.sicpers.info 4y ago

Software design is refinement, not abstraction

grahamlee
3pts0
www.sicpers.info 4y ago

Aphorism Considered Harmful

grahamlee
1pts1
www.sicpers.info 4y ago

Design Patterns on Trial

grahamlee
3pts0
www.sicpers.info 4y ago

Falsehoods these programmers believed about countries

grahamlee
2pts0
www.youtube.com 4y ago

Is TDD Dead? (2014) [video]

grahamlee
2pts1
www.sicpers.info 4y ago

An imagined history of agile software development

grahamlee
28pts11
deprogrammaticaipsum.com 4y ago

How to Reason About Mutable State

grahamlee
1pts0
www.sicpers.info 5y ago

Six Colours

grahamlee
1pts0
www.rse.ox.ac.uk 6y ago

Polyglot Documentation with Org-Mode

grahamlee
2pts0
www.sicpers.info 6y ago

So, what’s the plan? Part one: what WAS the plan?

grahamlee
1pts0
www.sicpers.info 6y ago

Another non-year of Linux on the desktop

grahamlee
4pts4
www.sicpers.info 6y ago

Forearmed

grahamlee
1pts0
deprogrammaticaipsum.com 6y ago

Adele Goldberg

grahamlee
3pts0
book.seaside.st 6y ago

Dynamic Web Development with Seaside

grahamlee
2pts0
www.sicpers.info 6y ago

Empowered Free Software

grahamlee
4pts0

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.

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.

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.

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.

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.

XOR 1 year ago

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.

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.

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.

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.

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”.

This is about smudging as a leftie, because your hand is trailing the pen if you write a LtR language like English. If you blotted every word or character before moving on you’d be there a while.