(Particular code and algorithmsParticular languages)
Ephemeral Hardware for software
Layered Abstractions
Defining Behavior: styles of definition
Terminology: Does sloppy terminology impair learning?
Pean for Constants
Names and Pointers
Imperfect Abstractions
Griping about XML
MapReduce
The plist is an imperfect abstraction.
Difficulty in learning software platforms.
Hard and Soft programs
Speciation of System Design
Knowing vs. Doing
Ordering Calculations in a Computer
Space Allocation
Waiting; sleeping and waking
Returning Arrays
MidPointer, observations on a buddy system
Parameter packs and Marshalling
Large Stack Frames
My notes on Ivan Sutherland’s Reincarnation Wheel parable.
Middleware and Compatibility
Protection
  • Some history and some philosophy on protection requirements
  • Protection in popular systems
  • Capabilities may be said to be largely about protection.
  • Saltzer & Schroeder’s The Protection of Information in Computer Systems
    RamPlan, a theory of types
    McCarthy Dijkstra etc.
    Incipient intro to Linking and Loading
    Unix Threads
    Installing software: How to vs. What is
    Short note on Invariants
    A Pattern for explaining Contexts
    Augment and Hierarchies
    Computer proofs about programs: Some Notes and a Rant.
    IBM’s Virtual Machine Software, VM/370
    The security of IBM’s VM370
    Some virtual offerings
    Theory of Virtualization
    The Java Muffin Saga
    How to Document
    Reliability Tradeoffs
    Floating Precision
    Notes and proposals on JavaScript
    A Question of Fluid Variables
    Java Locks
    Sloppy terminology, Pedantic or Clear?
    Ruminations on backing store over radio link.
    Interrupt Processors, not Processes
    Stacks and Continuations.
    Unicode characters in web pages using utf-8
    Vtables
    Instances
    Scraps
    Licenses
    Being vulnerable to what you read
    Monads, sort of.
    Dependent Compilation
    Sorting as an Early and Modern(?) Software Paradigm
    Mag Tape Logic and Tail Recursion

    See some notes on connections between computer languages and capabilities.

    Late 20th century notes on ‘Distributed Development’


    McCarthy’s Reminiscences on Timesharing
    OS
    My Firefox bug
    On AI
    Lamport’s writings
    Dijkstra’s On the cruelty of really teaching computing science
    Google Browser Security Handbook
    Google’s Chrome Security Architecture
    A really small executable