Recently Published Posts
Recent Personal Notes
A list of articles and pages that I have read, am reading, or would like to read.
Program data that was collected from outside that program, such that it could not be rederived if lost.
The Standard Line
A line a text I use to determine optimal font-size and line-length.
Recommended Web Tech
My recommendations for libraries and tools to be used in web development.
Advantages to Immutable Values
Technical Writing Advice
My notes on various technical writing advice.
The Undertone Palette
A color palette to serve as the dark-mode background to highlighted code.
A personal note on a proper diet for nutrition.
My (incomplete) checklist for new GitHub repositories, npm repositories, and TypeScript libraries.
Notes on the flexibility of information, or state, in a program.
A bug is an unexpected behavior of code.
Declarative programming is performed with rules that define the relationships between data. These rules are then realized by the underlying declarative system to derive results in a time-independent way.
An email I sent about open architectures.
Abstraction is the removal of details, possibly alongside a reformulation of a process or idea to a different model of thinking.
An Input Conflict occurs when an entry is incompatible with some other, prior input.
A disabled user input is a user interface element that displays information inside a conventionally editable component but is actually uneditable.
Alt Text, short for "alternative text," is any text used as a fallback when an image or pictorial element cannot be accessed or perceived.
Deterministic Data Structure
A data structure whose values have not yet been computed, but may be realied by a deterministic process which depends only on the location of the value in the data structure, such that the complete data structure is determined at creation.
A requirement placed on the program state that must remain satisfied after all state changes.
Simplify Early, Complicate Late
The Simplify Early, Complicate Late rule states that data should be simplified as early in a process as possible, and new data should be derived as late in a process as possible.
The Standard Deque
A description of a segmented deque which may be restricted to create a list, stack, or stack in a sequential, segmented, or linked allocation.
Documentation Proximity Principle
The probability that documentation will be updated to account for changes to code depends on how close the documentation is to the software it describes.
A Misunderstanding is a user mistake where the user did not misunderstand the consequences of an action such that they caused an effect they did not intend.
A miscommunication in application design is any mistaken user action that the user did not intend to apply.
Temperature Conversion Problem
The Temperature Conversion Problem is a set of requirements for a small application that illustrates the difference between Bidirectional and Unidirectional Data Flow.
My personal note on what makes criticism "constructive."
Currency is a representative of value.
One Request Rule
If the result of a data request across a network may result in a follow-up request, there should be some mechanism to include the follow-up in the initial request to reduce latency.
Color, as it relates to software and user interfaces.
A list of first aid supplies to build a first aid kit.
Type Flexibility is the ability for an entity to change its type in response to an event, even if that change was not anticipated when the type's interface was designed.
Nil Values are those that exist outside the expected space of possible values given the values type.
A lens is a pair of get and set functions used to read and update components of immutable values.
Conditions are the requirements to use a program, including functions and objects, as specified by the interface and documentation, collectively known as the contract.
Layout is the mechanics by which screen elements are positioned and sized so that they can be viewed, navigated, and interacted with by users.
Event Sourcing is an alternative approach to storing information where change events are retained rather than being used to update program state.
Mark My Words
My list of predictions about the future of software.
Discordant Security refers to the two conflicting goals in security—allowing access to authorized users, and denying access to bad actors.
The Expression Problem is a software engineering dilema where the more implementations an abstract data type has, the harder it is to add new behaviors, and vice versa.
First Principle of Test Code
The core principle behind all automated software tests.