Tool of Thought

APL for the Practical Man

"You don't know how bad your design is until you write about it."


Revisiting Rumba

Styles, Themes, and Layouts

A WebSocket Experiment

An Abacus Application

A Fair Mutex

How to Center a Dialog Element

Beware the Blur, and More

A High Performance Data Grid in HTML

Modal Dialog Boxes 5: More on ProgressBar

Modal Dialog Boxes 4: ProgressBar

Uncle Bob and The Primeagen

Modal Dialog Boxes 3: Prompt

Modal Dialog Boxes 2: Confirm

Modal Dialog Boxes 1: Alert

The Abacus Threading Model

Making SharpPlot Charts Interactive

On Categorical Data

High-Rank Arrays

Charting and Tidy Data

Project Playfair

Ordered Namespaces

Towards a Chart Wizard

Testing GUIs: Wrestling with Events

Testing GUIs

Boolean Techniques

Don't Trap When You Can Verify

Excel Column Names

DOM via JSON Performance

The DOM via JSON

Validating Dates

Grade Down of Grade Up

How Would You Write This?

Text2Date, a New Repository

Error Trapping

Provanto: A Test Framework

Converting Text to Date

An Issue With ⎕XML Revisited

Anatomy of a Query, Part 3

Anatomy of a Query, Part 2

Secret Santa

Parsing Markdown

Anatomy of a Query, Part 1

ComposeRules Revisited

Constructing CSS in APL

Threading the HTMLRenderer

A Document Object Model in APL

On Control Structures

LeetCode 601: Human Traffic of Stadium


LeetCode 569: Median Employee Salary

LeetCode 571: Find Median Given Frequency of Numbers

LeetCode 262: Trips and Users

LeetCode 185: Department Top Three Salaries

Operators in a DSL

Session Configuration

A New Workspace File Format

Aaron Hsu at Function Conf 2022

⎕VFI with ⎕CSV

An APL Logo

Two Issues with ⎕XML

HTML Tables Again

Constructing HTML Tables

The Software Circle of Life

HTMLRenderer Required Files

The Problem with Namespace Scripts

Building Namespace Scripts

The Constant Operator