Software & Open Systems

Programs, protocols, open systems, and the long practical history of making machines do one useful thing correctly.

A Few Places to Begin

Representative entry points from across the site.

  • Software · Historical · 1999–2010 · C · BSD / Unix

    FreeGrep

    A BSD-licensed implementation of grep, originally written to understand finite-state matching and later adopted into the source trees of both NetBSD and OpenBSD; it subsequently became the standard grep in Minix 3.

  • Books · 1st edition · 2017 · Author

    Computational Methods for Numerical Analysis with R

    A numerical-analysis text written around R as the working environment. It follows the standard sequence—error, linear algebra, interpolation, integration, optimization, and differential equations—while keeping the algorithms close enough to run, inspect, and alter. The companion cmna package carries the examples beyond the printed page.

  • Writing

    The Case for RISC-V

Scholarship

  • (2020), Journal of Statistical Software.

    Phonetic Spelling Algorithm Implementations for R

    A scholarly software paper on the phonics R package, which implements phonetic algorithms for record linkage and related work. It is a good example of software treated as a method that should be inspectable, reusable, and citable.

  • (2020, with Maria E. Vachino), IEEE Security & Privacy.

    Blockchain Compliance with Federal Cryptographic Information Processing Standards

    This paper asks the unglamorous but necessary question behind a technical proposal: whether a blockchain design can satisfy the standards and governance requirements of the system it is supposed to serve.

Books

  • 1st edition · 2017 · Author

    Computational Methods for Numerical Analysis with R

    A numerical-analysis text written around R as the working environment. It follows the standard sequence—error, linear algebra, interpolation, integration, optimization, and differential equations—while keeping the algorithms close enough to run, inspect, and alter. The companion cmna package carries the examples beyond the printed page.

Software

  • Historical · 1999–2010 · C · BSD / Unix

    FreeGrep

    A BSD-licensed implementation of grep, originally written to understand finite-state matching and later adopted into the source trees of both NetBSD and OpenBSD; it subsequently became the standard grep in Minix 3.

  • Maintained · 2016–present · R · numerical analysis

    cmna

    The companion package to Computational Methods for Numerical Analysis with R. It puts the algorithms from the book in runnable, inspectable form so that approximation, error, and numerical choices can be seen rather than merely asserted.

  • Maintained · 2015–present · R · CRAN package

    phonics

    Phonetic encoders for English, German, and French names, plus comparison methods used in record linkage. It began with a county-data merge that needed more than wishful spelling normalization and became published, citable research software.

  • Historical · 1997–1998 · C · BSD / Unix

    Small Unix utilities

    daemon, rpt, uwatch, and write are small programs from the era when a utility could be worth having simply because it did one job cleanly. They are preserved as source and as a record of the systems work that preceded the larger projects.