Computing Machinery and Intelligence
Turing reframes "Can machines think?" through the imitation game, answers major objections, and turns the discussion toward learning machines.
Turing reframes "Can machines think?" through the imitation game, answers major objections, and turns the discussion toward learning machines.
Hayek argues that the central economic problem is not centralized calculation, but how to use dispersed local knowledge; the price system is the mechanism that does it.
Lamport's classic paper models event order with happened-before, then builds logical clocks, total ordering, mutual exclusion, and physical clock synchronization from it.
Saltzer, Reed, and Clark formulate the end-to-end argument: many functions can only be implemented correctly at the endpoints, with lower layers serving mainly as performance optimizations.
Granovetter argues that weak ties, not strong ones, are often what connect groups and let information, opportunities, and coordination travel across social boundaries.
Using the KWIC example, Parnas shows that good modular decomposition hides change-prone design decisions rather than mirroring processing steps.
Notes from translating 11 classic CS papers with Codex. What changed the economics was not one-click translation, but a checked pipeline that pulled PDFs, OCR, terminology, citations, code, formulas, and web layout into the same workflow.
Ritchie and Thompson explain early UNIX: its file system, process model, shell, unified I/O abstraction, and why the system stayed small yet powerful.
Hoare presents an axiomatic framework for proving partial program correctness, then uses it to discuss proofs, language definition, documentation, and portability.
Halevy, Norvig, and Pereira argue that for language and web-scale problems, large real-world datasets plus simple scalable models often beat elegant small-data theories.
Drawing on Bell Labs and the history of science, Hamming discusses how to choose important problems, manage yourself, build courage and habits, and do work of lasting value.
Naur argues that programming is not mainly producing text, but building a theory around the problem and solution that can be explained, extended, and revised.
Sutton distills a recurring lesson from AI: in the long run, methods that scale with computation beat hand-coded human knowledge.
Through self-reproducing programs and a backdoored compiler, Thompson shows why source review alone cannot fully establish trust in a toolchain or software supply chain.
Knuth argues that programming is both science and art: it needs formal foundations, but also taste, style, and aesthetic judgment.
Brooks distinguishes essential from accidental difficulties in software engineering and explains why no single technology can deliver an order-of-magnitude productivity jump.
Explains why "worse is better" wins in practice: simple implementations, rapid spread, and evolvability often beat perfect design.
A set of system design heuristics on keeping interfaces simple, making systems faster, and balancing fault tolerance against complexity.
To read classic papers more comfortably, I used Codex to build an agentic translation flow: PDF -> Markdown -> Chinese translation -> terminology cleanup -> cross-references. AI translation is not magic. It is closer to putting translation, editing, proofreading, and layout into one pipeline.
A reread of Richard Gabriel's Worse Is Better: why systems that are less perfect but easier to implement and spread often win adoption first, and why mature ecosystems later need The Right Thing to repair them.