惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Security Archives - TechRepublic
Security Archives - TechRepublic
I
InfoQ
阮一峰的网络日志
阮一峰的网络日志
云风的 BLOG
云风的 BLOG
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
AWS News Blog
AWS News Blog
S
SegmentFault 最新的问题
T
Tailwind CSS Blog
The Hacker News
The Hacker News
GbyAI
GbyAI
P
Palo Alto Networks Blog
博客园 - 三生石上(FineUI控件)
Y
Y Combinator Blog
Stack Overflow Blog
Stack Overflow Blog
博客园 - Franky
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Cyberwarzone
Cyberwarzone
H
Help Net Security
S
Securelist
月光博客
月光博客
博客园 - 【当耐特】
T
Threatpost
T
Tenable Blog
G
GRAHAM CLULEY
博客园 - 司徒正美
I
Intezer
MyScale Blog
MyScale Blog
T
Threat Research - Cisco Blogs
P
Privacy & Cybersecurity Law Blog
The GitHub Blog
The GitHub Blog
C
CERT Recently Published Vulnerability Notes
T
Tor Project blog
Google DeepMind News
Google DeepMind News
C
Cybersecurity and Infrastructure Security Agency CISA
罗磊的独立博客
腾讯CDC
P
Privacy International News Feed
博客园_首页
The Cloudflare Blog
Cisco Talos Blog
Cisco Talos Blog
A
About on SuperTechFans
V
Vulnerabilities – Threatpost
A
Arctic Wolf
B
Blog RSS Feed
Recorded Future
Recorded Future
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Google DeepMind News
Google DeepMind News
S
Security Affairs
Microsoft Security Blog
Microsoft Security Blog
L
LangChain Blog

Maggie Appleton

The Dark Forest and Generative AI One Developer, Two Dozen Agents, Zero Alignment Gas Town’s Agent Patterns, Design Bottlenecks, and Vibecoding at Scale January 2026 | Maggie Appleton A Treatise on AI Chatbots Undermining the Enlightenment A Brief History & Ethos of the Digital Garden Vibe Code is Legacy Code May 2025 | Maggie Appleton Home-Cooked Software and Barefoot Developers Statistically, When Will My Baby Be Born? Speculative Calendar Events ChatGPT Would be a Decent Policy Advisor March 2025 | Maggie Appleton The Expanding Dark Forest and Generative AI Humanity's Last Exam Squish Meets Structure Common Misconceptions in AI Undetected AI Exam Answers Unbaited Smidgeons Growing a Human: The First 30 Weeks How to Import Academic Papers from Zotero into Tana December 2024 | Maggie Appleton Aesthetic Command Lines with Hyper, Spaceship, and Oh My Zsh Leaving Elicit July 2024 | Maggie Appleton A Short History of Bi-Directional Links The Pattern Language of Project Xanadu Assumed Audiences Ambient Co-presence On Opening Essays, Conference Talks, and Jam Jars Spinning Worlds, Seasickness, and Dealing with Vestibular Neuritis A Collection of Design Engineers Gathering Structures Daily Notes Pages December 2023 | Maggie Appleton September 2023 | Maggie Appleton Digital Gardening for Non-Technical Folks Language Model Sketchbook, or Why I Hate Chatbots June 2023 | Maggie Appleton Computational Notebooks Folk Interfaces Reverse Outlining with Language Models Command K Bars Spatial Web Browsing A Picture Worth a Thousand Programmes Programmable Notes Programming Portals Teenage Skeuomorphic Desktop Designs Tending Evergreen Notes in Roam Research Growing the Evergreens Why You Own an iPad and Still Can't Draw A Brief Introduction to Digital Anthropology Transclusion and Transcopyright Dreams The Block-Paved Path to Structured Data Empty Pointers and Constellations of AI Metaphors We Web By The Gift Economy Epistemic Disclosure November 2022 | Maggie Appleton Joining Ought July 2022 | Maggie Appleton The Linear Oppression of Note-taking Apps Paleolithic Nostalgia Interoperable Personal Libraries and Ad Hoc Reading Groups The Finest Narrative Non-Fiction Essays Algorithmic Transparency October 2021 | Maggie Appleton Plebeian Programming with Keyboard Maestro The Cultural Anthropology of React August 2021 | Maggie Appleton Natureculture, Moral Purity, and Cultural Boundaries The Echo & Narcissus Writing Club Pink, Soft, Glittering Developers Fetishism & Mechanical Keyboards Making Programming Visual, Spatial, and Learnable Organic, Local, Artisan Data Storage Positioning Elements & Scrollytelling in CSS Painting Roam Research with Custom CSS A Digital Anthropology Reading List The Eponymous Laws of Programming A History of Cyborgs Neologisms GreenSock Animations with React Hooks The Bare Essentials of Greensock September 2020 | Maggie Appleton Illustrating Gatsby's Key Concepts Problematic Proteins New Harvest & Illustrating the Cultivated Meat Podcast Synecdoche: Drawing the Part for the Whole A Meta-Tour of This Site Douglas, Dirt, and Matter Out of Place The Knowledge Hydrant A Naïve Exploration of Computer-Supported Collaborative Learning Silent Synchronous Reading Sessions What the Fork is React Suspense? Visually Workshopping the AWS Cloud Are Data Unions the Future of Data? Pattern Languages in Programming and Interface Design A Metaphorical Reading Collection
Historical Trails
Patryk Adaś · 2023-12-18 · via Maggie Appleton

The Context

Whenever I’m on a punishingly long flight and feeling the ache of being crunched in a seat for a dozen hours, I soothe myself by opening up the live flight map. The tiny airplane trail is reassuring. We are making progress. We are on track. We will one day be free of this plane. Yes of course I wrote this opening while on a 14-hour flight.

A reassuring in-flight progress tracking map
A reassuring in-flight progress tracking map – Source: Magalie L'Abbé

When I’m on a journey through a dark swamp of information, I want that same sense of reassurance that flight map gives me. I want to know:

  • Where I am right now
  • Where I’m going (and how long it’s going to take to get there)
  • Where I’ve been and how I got here

Most interfaces are decent at the first two. We have lots of patterns that tell me where I am right now, like active items, focus states, and progress bars. Even though these are usually lying to us, they still make us feel better. Users will wait longer and be less annoyed if you just give them a fake progress bar. that indicate our current “position” in a process or navigation space.

We also have good patterns for guiding me towards a known destination. Patterns like steppers and clear copywriting on buttons telling me what’s coming next.

It’s a bit trickier when neither the interface nor I knows the final destination, as happens in information gathering, research projects, and open-ended learning, but we’ll save that problem for another time.

But very few interfaces do a brilliant job of the third need: showing me where I’ve been and how I got here. We can do it at small scales. Patterns like breadcrumbs help us navigate through website or wiki with lots of subpages, but those don’t scale well beyond ~7 steps.

Breadcrumbs on the UK Post Office website
Breadcrumbs on the UK Post Office website

For any journey that has more than a dozen steps, and may involve backtracking and branching off in different directions, we need much more than a simple breadcrumb list.

The most obvious and common context where this problem comes up is browsing the web. Every day you and I blast through hundreds, possibly thousands, of pages. And we do it chaotically. We open forty tabs in parallel. We have six windows open. We click down trails of links without knowing how we got from one to the next. We try to visually inhale an impossible volume of content.

It’s fine for most of it to wash over us. It’s probably junk. But then there’s that moment when you need to find something you just saw a few days ago. But god knows where the link is. Your brain cannot conjure the right keywords to find it through search. And your browser history list is 100,000 items deep. Good luck with that.

Even if you’re not looking for a specific piece of information, we have almost no visibility into where we’ve been in our browsers on a day-to-day basis. There’s no easy way to reflect upon or revisit what you’ve seen. Or recap and summarise what you learned. There’s a whole meta layer we’re missing here.

Surprisingly, most browser history experiences are woefully inadequate. If we look at Chrome, the most widely used browser by a good margin, the main history page is a flat list that runs for eternity.

Scroll this for a while…

A very long browser history list in the Chrome browser

How useful does this seem to you? You’ll have noticed the giant stack of identical Google Maps items, and the many informative (63) Post | LinkedIn entries. Does looking at that give you a good sense of my browsing journey and what I saw along the way? Can you tell how I got from one page to another? If I was trying to jump back to a specific point in time, do these titles give me enough information to know which point to click back to?

Perhaps this page is not designed to be looked at; perhaps I’m only supposed to use the search bar at the top? Shame it doesn’t have any filters or sorting either.

They do have a second view that groups these pages by theme and time, which is a helpful step up. But I find these are still quite scant on useful information and often split up items that relate to the same topic or browsing session.

A very long browser history list in the Chrome browser

So how might we show people where they’ve been in more helpful and nuanced ways?

The Pattern

Good historical trails should show people where they’ve been, even when the journey has been complex, looping, and divides into multiple branches of exploration. They should also summarise the major themes or journeys into high-level groupings, so that we can start at a macro level view and zoom into micro level items if needed.

Git is a good example of a widely used system that gives us fine-grained views of complex historical trails. With modern Git clients like Gitkraken and Sourcetree , you can visually see exactly who made which changes, when they made it, what branch they were on, and which branch they merged it into.

Git is a version control system primarily used to manage code. It allows many people to edit the same set of code files simultaneously. It helps keep track of who wrote which lines of code, see different versions of the code, resolve conflicts, and rollback changes if there’s a bug in the code or something goes wrong (and something always wrong).

Here’s a short written explanation that goes into more detail, or a 2-minute video , if you prefer.

Even with hundreds of people contributing code to a single project, the system of branching and merging makes the history comprehensible. Well, most of the time… we’ve all been burned by Git a bit

Gitkraken's interface helps visualise complex Git histories
Gitkraken's interface helps visualise complex Git histories

Perhaps web browsing histories should look more like Git commit histories? Perhaps distinct branches could representing different topics and research avenues?

Patryk Adaś’ published a set of speculative design ideas in 20179ya that hint at a more Git-like, branching way to view browsing history. Adaś argued we should move away from the concept of tabs in browsers, and instead present histories as a set of trails.

Tab navigation vs. Trail navigation
Tab navigation vs. Trail navigation – Source: Lossless Web Navigation

These trails would show users a narrative history, including the full trace of how a user ended up on a page, even if they used the back button or opened many new pages from a single source (like a search results page).

The trail model could give us a nice overview map of not only which pages we spent time on, but how we got from one to the next. While not specifically focused on histories, some of the qualities of my Spatial Web Browsing

Spatial Web Browsing

Adding spatial affordances to the experience of browsing the web pattern could also give us this view.

A possible overview map of trails and their connections
A possible overview map of trails and their connections – Source: The Future of Browser History

Adaś also prototyped a spatial navigation view for moving between these trails and viewing a ‘stack’ of previous pages behind each:

Adaś was building off some prior art here. Previous projects that explored visible trails of browser links include the Chrome extension Trailblazer and this unpublished draft paper by HCI professor Hua Guo. But neither of these are alive and usable.

One exception is Szymon Kaliski’s Cartographist which is an experimental open-source browser that combines a branching trail view in a sidebar with the (now quite popular) horizontally-stacked window pattern.

Cartographist's interface

Cartographist's interface – Source: Szymonkaliski.com

These examples all manage to display complex and winding historical journeys, but so far none do a great job at summarizing and grouping large histories. This is key for contexts like web browsing where we have thousands of tiny events we’re trying to search through and make sense of. We need to be able to zoom out.

Imagine Chrome’s grouped “journeys” I showed above, but less noisy, more accurate at clustering related sessions, and with visible trails. Perhaps something like this…

A prototype mockup of a browser history that combines thematic groups and trails

I’ve designed this speculative interface inspired by one of Patryk Adaś’ maps above, but with page visits grouped into thematically related journeys rather than by website. Here’s a more detailed walkthrough:

Grouping journeys by topic instead of by website is more feasible than you might think. While I’m hesitant to suggest the most popular hammer of the moment, language models could be legitimately helpful in improving semantic clustering.

Rather than only relying on rudimentary hints like keywords and timing to guess which browsing sessions are related, these models can identify which pages are thematically related and part of a unified journey – even across multiple sites and multiple days.

Putting the detailed, branching trail inside each journey avoids making this visually overwhelming. You can dive into journeys one at a time, rather than trying to process a giant list of links all at once.

References and Further Reading