Jeffrey Morgan
Articles
Projects
Gallery
About
Articles
How to Access Your iCloud Drive Folder in the Terminal App
Improving Object Storage and Access Efficiency with Adaptive Data Storage Structures
Alphabetical List Item Selection
Use Animation to Help Users Notice User Interface Changes
Anthropomorphism and Persuasion
Anthropomorphism on Trial
A Conceptual Model for Personalizing an Automated Teller Machine
How to Automatically Reveal Mac OS X Screenshot File Extensions
What Do You Get When You Cross a DVD Player With a Computer?
Breaking Conventions Can Cause Accidents
A Computer-Aided Learning COBOL Package
Computer Power-Button Design Switches Off Usability
Designing a User Interface for Credit Card Expiry Dates
How to Make Curved Line Joints in OmniGraffle
How to Create a Dashboard Widget Bar Icon
A Diagonal Layout Algorithm for Matrices
Come Back Dials—All Is Forgiven
The Document Visualizer
Compactly Visualizing Data with a Double-Ended Bar Chart
Drop Buttons—A Compact User Interface for Selecting Data from Multiple Sources
DVD Subtitle Usability Remains Poor
The Hidden Functionality of Elevator Toggle Buttons
Prototyping a User Interface for the ELF Information Browser
Composing Events with Event Accumulators
The Expanding Table—A User Interface Control for Visualizing Tabular Data
Fast Food, Slow Interaction
A Genetic Algorithm for Feature Labelling in Interactive Applications
A Relational Storage Mechanism for Implementing Flexible Input Controls
Flexible Input Controls for Humane User Interfaces
Changing Font Size with Direct Manipulation
Google's Simple User Interface Must Be Clear
Guidelines for Chaining iOS Apps
The Hierarchy Editor Tool
How to Zoom and Center a Leaflet Map on a Single Marker
How to Create Leaflet Control and Layer Plugins
How to Perform Multiple Asynchronous Tasks with D3
Reducing Internet Traffic by Packaging Multiple HTTP Requests
A Test for Identifying Categorical Data
A Glossary of Image Processing Terms
Implementing Songza Commands for Enso in Python
How to Improve Dot Matrix OCR Performance
How to Improve HTML Heading Layout with jQuery
Improve your Code by Refactoring to Nouns and Verbs
Using Transparency to Visualize Information Density
Improving Information Retrieval System Performance with Concepts
The IxD Bookshop Website
A Java Class Framework for Describing Application Parameters
How to Convert Between Latitude and Longitude and Easting and Northing Co-ordinates in Java
An XML Language for Describing Java Resource Bundles
Learning Through Natural Feedback on the London Underground
Learning User Preferences to Personalize Smart Card Applications
Link Labels—A Java Component for Hyperlinks
Harry Beck's London Underground Map at 75
Maintaining Document Mental Models by Reorganizing Document Files
Match User Interface Terminology With Tasks, Not User Ability
Mix Interface Idioms With Care
A Modal Kitchen Timer With Great User Interaction Design
An Evaluation of Modern Writing Tools
Monitoring Status with Monitor Threads
Monitoring the Progress of Optical-Media Tasks with Progress Discs
A Multiple Source Input Framework
Data Selection with Partition Labels
Personalizing Information Retrieval using Evolutionary Modelling
Poor Fridge Usability Got Me Hot Under the Collar
Poorly-Written Error Messages Trump Crashes
Progress Windows Monitor the Progress of Lengthy Tasks
Reducing Boot-Up Time Brings on Nostalgia
A Responsive YouTube Plugin for Jekyll
How to Install Ruby on macOS with RVM
Enhancing Aggregate Data Structures with Selection Iterators
Monitoring Progress with Size Input Streams
The Space Filler Explorer
The Hand-Dryer's Secret Handshake
Timetables Are Best For Browsing, Not Searching
Troubleshooting Twitter API Application Authentication Failures
An Analysis of the Street Names in Four U.K. Cities
Copying and Moving Data with the Visible Clipboard
Visual Filtering of Search Results with Document Maps
Requirements for Visualization Software
Enhancing Browsers with Web Page Levels of Detail
Reducing Perceived Download Time with Web Page Pre-Emption
The WebChooser Dialog