Ross Esmond

Code, Prose, and Mathematics.

a picture of me

Recently Published Posts

This Site

Recent Personal Notes

Reading List

A list of articles and pages that I have read, am reading, or would like to read.

code prose 

Information

Program data that was collected from outside that program, such that it could not be rederived if lost.

code 

The Standard Line

A line a text I use to determine optimal font-size and line-length.

ux prose 

Recommended Web Tech

My recommendations for libraries and tools to be used in web development.

code 

Advantages to Immutable Values

code functional 

Technical Writing Advice

My notes on various technical writing advice.

prose 

The Undertone Palette

A color palette to serve as the dark-mode background to highlighted code.

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.

code 

Information Flexibility

Notes on the flexibility of information, or state, in a program.

code flexibility 

Bugs

A bug is an unexpected behavior of code.

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.

code 

Open Architecture

An email I sent about open architectures.

code 

Abstraction

Abstraction is the removal of details, possibly alongside a reformulation of a process or idea to a different model of thinking.

code 

Input Conflict

An Input Conflict occurs when an entry is incompatible with some other, prior input.

ux code 

Disabled Inputs

A disabled user input is a user interface element that displays information inside a conventionally editable component but is actually uneditable.

ux 

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.

ux code a11y 

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.

code functional 

Invariant

A requirement placed on the program state that must remain satisfied after all state changes.

code 

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.

code simplicity 

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.

code storage 

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.

code 

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.

ux 

Miscommunication

A miscommunication in application design is any mistaken user action that the user did not intend to apply.

ux 

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.

code 

Constructive Criticism

My personal note on what makes criticism "constructive."

people 

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.

code 

Color

Color, as it relates to software and user interfaces.

ux code 

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.

code flexibility 

Nil Value

Nil Values are those that exist outside the expected space of possible values given the values type.

code 

Lens

A lens is a pair of get and set functions used to read and update components of immutable values.

code functional 

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.

code flexibility 

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.

ux code 

Event Sourcing

Event Sourcing is an alternative approach to storing information where change events are retained rather than being used to update program state.

code 

Mark My Words

My list of predictions about the future of software.

code 

Discordant Security

Discordant Security refers to the two conflicting goals in security—allowing access to authorized users, and denying access to bad actors.

code security 

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.

code 

First Principle of Test Code

The core principle behind all automated software tests.

code testing 

Handling Failure in a Function

code 

Deterministic Function

code functional 

Robust Inputs

ux code 

Up Event

ux 

State Changes as Filters

ux code 

Thunk Data Flow

code 

Prose Checking Utilities

prose 

Intentional Impediments

ux code 

Reversibility of User Actions

ux 

Familiarity Curve

ux 

Future

code 

Monads

code 

Functors

code 

Typesetting Complexities

code prose