Recently Published Posts
Recent Notes
UX Checklist for Text
A checklist of design rules for main body text.
Advantages to Immutable Values
Recommended Web Tech
My recommendations for libraries and tools to be used in web development.
Data Languages
Data Languages are programming languages purpose-designed to hold information, like XML or JSON.
Reading List
A list of articles and pages that I have read, am reading, or would like to read.
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.
First Principle of Test Code
The core principle behind all automated software tests.
Parallel Implementations
The generalized Open Closed principle
Fonts
A list of fonts that I like.
Expression Problem
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.
Information
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.
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.
Diet
A personal note on a proper diet for nutrition.
Repository Checklist
My (incomplete) checklist for new GitHub repositories, npm repositories, and TypeScript libraries.
Information Flexibility
Notes on the flexibility of information, or state, in a program.
Bugs
A bug is an unexpected behavior of code.
Declarative
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.
Open Architecture
An email I sent about open architectures.
Abstraction
Abstraction is the removal of details, possibly alongside a reformulation of a process or idea to a different model of thinking.
Input Conflict
An Input Conflict occurs when an entry is incompatible with some other, prior input.
Disabled Inputs
A disabled user input is a user interface element that displays information inside a conventionally editable component but is actually uneditable.
Alt Text
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.
Invariant
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.
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.
Misunderstanding
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.
Miscommunication
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.
Constructive Criticism
My personal note on what makes criticism "constructive."
Currency
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
Color, as it relates to software and user interfaces.
First Aid
A list of first aid supplies to build a first aid kit.
Type Flexibility
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 Value
Nil Values are those that exist outside the expected space of possible values given the values type.
Lens
A lens is a pair of get and set functions used to read and update components of immutable values.
Conditions
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
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
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
Discordant Security refers to the two conflicting goals in security—allowing access to authorized users, and denying access to bad actors.