Timelines of the web

Recreating the original WorldWideWeb browser was an exercise in digital archeology. With a working NeXT machine in the room, Kimberly was able to examine the source code for the first every browser and discover a treasure trove within. Like this gem in HTUtils.h:

#define TCP_PORT 80 /* Allocated to http by Jon Postel/ISI 24-Jan-92 */

Sure enough, by June of 1992 port 80 was documented as being officially assigned to the World Wide Web (Gopher got port 70). Jean-François Groff—who worked on the World Wide Web project with Tim Berners-Lee—told us that this was a moment they were very pleased about. It felt like this project of theirs was going places.

Jean-François also told us that the WorldWideWeb browser/editor was kind of like an advanced prototype. The idea was to get something up and running as quickly as possible. Well, the NeXT operating system had a very robust Text Object, so the path of least resistance for Tim Berners-Lee was to take the existing word-processing software and build a hypertext component on top of it. Likewise, instead of creating a brand new format, he used the existing SGML format and added one new piece: linking with A tags.

So the WorldWideWeb application was kind of like a word processor and document viewer mashed up with hypertext. Ted Nelson complains to this day that the original sin of the web was that it borrowed this page-based metaphor. But Nelson’s Project Xanadu, originally proposed in 1974 wouldn’t become a working reality until 2014—a gap of forty years. Whereas Tim Berners-Lee proposed his system in March 1989 and had working code within a year. There’s something to be said for being pragmatic and working with what you’ve got.

The web was also a mashup of ideas. Hypertext existed long before the web—Ted Nelson coined the term in 1963. There were conferences and academic discussions devoted to hypertext and hypermedia. But almost all the existing hypertext systems—including Tim Berners-Lee’s own ENQUIRE system from the early 80s—were confined to a local machine. Meanwhile networked computers were changing everything. First there was the ARPANET, then the internet. Tim Berners-Lee’s ambitious plan was to mash up hypertext with networks.

Going into our recreation of WorldWideWeb at CERN, I knew I wanted to convey this historical context somehow.

The World Wide Web officially celebrates its 30th birthday in March of this year. It’s kind of an arbitrary date: it’s the anniversary of the publication of Information Management: A Proposal. Perhaps a more accurate date would be the day the first website—and first web server—went online. But still. Let’s roll with this date of March 12, 1989. I thought it would be interesting not only to look at what’s happened between 1989 and 2019, but also to look at what happened between 1959 and 1989.

So now I’ve got two time cones that converge in the middle: 1959 – 1989 and 1989 – 2019. For the first time period, I made categories of influences: formats, hypertext, networks, and computing. For the second time period, I catalogued notable results: browsers, servers, and the evolution of HTML.

I did a little bit of sketching and quickly realised that these converging timelines could be represented somewhat like particle collisions. Once I had that idea in my head, I knew how I would be spending my time during the hack week.

Rather than jumping straight into the collider visualisation, I took some time to make a solid foundation to build on. I wanted to be sure that the timeline itself would be understable even if it were, say, viewed in the first ever web browser.

Progressive enhancement. Marking up (and styling) an interactive timeline that looks good in a modern browser and still works in the first ever web browser.

I marked up each timeline as an ordered list of h-events:

<li class="h-event y1968">
  <a href="https://en.wikipedia.org/wiki/NLS_%28computer_system%29" class="u-url">
    <time class="dt-start" datetime="1968-12-09">1968</time>
    <abbr class="p-name" title="oN-Line System">NLS</abbr>
  </a>
</li>

With the markup in place, I could concentrate on making it look halfway decent. For small screens, the layout is very basic—just a series of lists. When the screen gets wide enough, I lay those lists out horzontally one on top of the other. In this view, you can more easily see when events coincide. For example, ENQUIRE, Usenet, and Smalltalk all happen in 1980. But the real beauty comes when the screen is wide enough to display everthing at once. You can see how an explosion of activity in the early 90s. In 1994 alone, we get the release of Netscape Navigator, the creation of HTTPS, and the launch of Amazon.com.

The whole thing is powered by CSS transforms and positioning. Each year on a timeline has its own class that gets moved to the correct chronological point using calc(). I wanted to use translateX() but I couldn’t get the maths to work for that, so I had use plain ol’ left and right:

.y1968 {
  left: calc((1968 - 1959) * (100%/30) - 5em);
}

For events before 1989, it’s the distance of the event from 1959. For events after 1989, it’s the distance of the event from 2019:

.y2014 {
  right: calc((2019 - 2014) * (100%/30) - 5em);
}

(Each h-event has a width of 5em so that’s where the extra bit at the end comes from.)

I had to do some tweaking for legibility: bunches of events happening around the same time period needed to be separated out so that they didn’t overlap too much.

As a finishing touch, I added a few little transitions when the page loaded so that the timeline fans out from its centre point.

Et voilà!

Progressive enhancement. Marking up (and styling) an interactive timeline that looks good in a modern browser and still works in the first ever web browser.

I fiddled with the content a bit after peppering Robert Cailliau with questions over lunch. And I got some very valuable feedback from Jean-François. Some examples he provided:

1971: Unix man pages, one of the first instances of writing documents with a markup language that is interpreted live by a parser before being presented to the user.

1980: Usenet News, because it was THE everyday discussion medium by the time we created the web technology, and the Web first embraced news as a built-in information resource, then various platforms built on the web rendered it obsolete.

1982: Literary Machines, Ted Nelson’s book which was on our desk at all times

I really, really enjoyed building this “collider” timeline. It was a chance for me to smash together my excitement for web history with my enjoyment of using the raw materials of the web; HTML and CSS in this case.

The timeline pales in comparison to the achievement of the rest of the team in recreating the WorldWideWeb application but I was just glad to be able to contribute a little something to the project.

Hello WorldWideWeb.

Responses

danq.me

I’m making progress with the people I work with. I’ve now got six of the eight folks in our office…

# Saturday, July 31st, 2004 at 10:29am

danq.me

I’m making progress with the people I work with. I’ve now got six of the eight folks in our office…

# Saturday, July 31st, 2004 at 10:29am

danq.me

I’m making progress with the people I work with. I’ve now got six of the eight folks in our office…

# Saturday, July 31st, 2004 at 10:29am

danq.me

I’m making progress with the people I work with. I’ve now got six of the eight folks in our office…

# Saturday, July 31st, 2004 at 10:29am

danq.me

Dan gets paranoid and despairs about the ease with which mobile devices can be stolen, the wealth of personal information…

# Thursday, December 20th, 2012 at 12:09pm

Shane Hudson

I would really love to be involved if you ever do another CERN session. Right up my street.

Lisa Welchman

I want to hear about this adventure. Next time I am in the U.K. I am going to make my way to Brighton!

Hidde

“[I] quickly realised that these converging timelines could be represented somewhat like particle collisions. Once I had that idea in my head, I knew how I would be spending my time” how @adactio created a timeline of the web adactio.com/journal/14827

# Posted by Hidde on Thursday, February 21st, 2019 at 3:24pm

Cameron Adams

I do really love the way you’ve represented the convergence of innovation to a moment in time, and the resulting divergence of innovation that resulted from it.

17 Shares

# Shared by jory burson on Tuesday, February 19th, 2019 at 2:48pm

# Shared by Dominic Mitchell on Tuesday, February 19th, 2019 at 2:51pm

# Shared by Adrian Driscoll on Tuesday, February 19th, 2019 at 2:52pm

# Shared by Nisar Hassan Naqvi on Tuesday, February 19th, 2019 at 2:59pm

# Shared by Dan Rubin on Tuesday, February 19th, 2019 at 3:05pm

# Shared by @rem on Tuesday, February 19th, 2019 at 3:08pm

# Shared by Andy Budd on Tuesday, February 19th, 2019 at 4:23pm

# Shared by Jon Fisher on Tuesday, February 19th, 2019 at 7:14pm

# Shared by Alex Moldovan on Tuesday, February 19th, 2019 at 9:02pm

# Shared by Chris Ruppel on Tuesday, February 19th, 2019 at 9:53pm

# Shared by Dan Johnson on Tuesday, February 19th, 2019 at 10:47pm

# Shared by Wim Leers on Tuesday, February 19th, 2019 at 11:01pm

# Shared by Hennie Martens on Wednesday, February 20th, 2019 at 3:39am

# Shared by Martin Akolo Chiteri on Wednesday, February 20th, 2019 at 6:31am

# Shared by dcullinane on Wednesday, February 20th, 2019 at 9:01am

# Shared by Ryan, protect the 🌹 on Wednesday, February 20th, 2019 at 2:38pm

# Shared by вкαя∂εℓℓ on Wednesday, February 20th, 2019 at 3:33pm

33 Likes

# Liked by Jason Pamental on Tuesday, February 19th, 2019 at 3:00pm

# Liked by Web Design Museum on Tuesday, February 19th, 2019 at 3:00pm

# Liked by Nisar Hassan Naqvi on Tuesday, February 19th, 2019 at 3:00pm

# Liked by Simon Collison on Tuesday, February 19th, 2019 at 3:00pm

# Liked by Pierre Bertet on Tuesday, February 19th, 2019 at 3:00pm

# Liked by Björn Stierand on Tuesday, February 19th, 2019 at 3:01pm

# Liked by Jan Skovgaard on Tuesday, February 19th, 2019 at 3:01pm

# Liked by jory burson on Tuesday, February 19th, 2019 at 3:01pm

# Liked by Dan Rubin on Tuesday, February 19th, 2019 at 3:27pm

# Liked by ronaku 🦁 👊🏾 on Tuesday, February 19th, 2019 at 3:27pm

# Liked by Pushkins prefers on Tuesday, February 19th, 2019 at 4:31pm

# Liked by Andrea Rivera on Tuesday, February 19th, 2019 at 5:02pm

# Liked by Michelle on Tuesday, February 19th, 2019 at 5:02pm

# Liked by ChrisArchitect on Tuesday, February 19th, 2019 at 5:02pm

# Liked by YannPicarddeMuller on Tuesday, February 19th, 2019 at 5:02pm

# Liked by Craig Saila on Tuesday, February 19th, 2019 at 6:07pm

# Liked by 7-kurgan-d on Tuesday, February 19th, 2019 at 7:10pm

# Liked by Ari Palo on Tuesday, February 19th, 2019 at 7:10pm

# Liked by Sam Downie - #Actor #Presenter #Podcaster on Tuesday, February 19th, 2019 at 7:42pm

# Liked by Barry Pollard on Tuesday, February 19th, 2019 at 10:13pm

# Liked by Wim Leers on Tuesday, February 19th, 2019 at 11:18pm

# Liked by Giulia Laco on Tuesday, February 19th, 2019 at 11:18pm

# Liked by Hennie Martens on Wednesday, February 20th, 2019 at 3:57am

# Liked by Linn on Wednesday, February 20th, 2019 at 6:25am

# Liked by Martin Akolo Chiteri on Wednesday, February 20th, 2019 at 6:58am

# Liked by dcullinane on Wednesday, February 20th, 2019 at 9:13am

# Liked by Erik Pavletic on Wednesday, February 20th, 2019 at 12:45pm

# Liked by costacode on Wednesday, February 20th, 2019 at 1:49pm

# Liked by Ryan, protect the 🌹 on Wednesday, February 20th, 2019 at 2:53pm

# Liked by вкαя∂εℓℓ on Wednesday, February 20th, 2019 at 3:47pm

# Liked by Takashi M 🌱 on Wednesday, February 20th, 2019 at 6:14pm

# Liked by Kathleen Mae on Friday, February 22nd, 2019 at 1:27am

# Liked by HJ Chen on Friday, February 22nd, 2019 at 12:11pm

1 Bookmark

# Bookmarked by Aaron Davis on Thursday, February 21st, 2019 at 11:02am

Related posts

A curl in every port

Postel’s port numbers.

Design sprint?

It looks like a design sprint, and quacks like a design sprint. But is it a design sprint?

Web App install API

It’s kind of ridiculous that this functionality doesn’t exist yet.

CSS Day 2024

A genuinely inspiring event.

Pickin’ dates on iOS

Mobile Safari doesn’t support the min and max attributes on date inputs.

Related links

Chapter 1: Birth | CSS-Tricks

This is wonderful! A whole series on the history of the web from Jay Hoffman, the creator of the similarly-themed newsletter and timeline.

This first chapter is right up my alley, looking at the origins of hypertext, the internet, and the World Wide Web.

Tagged with

The “Backendification” of Frontend Development – Hacker Noon

Are many of the modern frontend tools and practices just technical debt in disguise?

Ooh, good question!

Tagged with

Reluctant Gatekeeping: The Problem With Full Stack | HeydonWorks

The value you want form a CSS expert is their CSS, not their JavaScript, so it’s absurd to make JavaScript a requirement.

Absolutely spot on! And it cuts both ways:

Put CSS in JS and anyone who wishes to write CSS now has to know JavaScript. Not just JavaScript, but —most likely—the specific ‘flavor’ of JavaScript called React. That’s gatekeeping, first of all, but the worst part is the JavaScript aficionado didn’t want CSS on their plate in the first place.

Tagged with

Answers for young people - Tim Berners-Lee

Many, many years ago, Tim Berners-Lee wrote this page of answers to (genuinely) frequently asked questions he got from school kids working on reports. I absolutely love the clear straightforward language he uses to describe concepts like hypertext, packet switching, and HTTP.

Tagged with

The Web (Browser) We Forgot - Kimberly Blessing (Think Brownstone) keynote - YouTube

This is a wonderful presentation by Kimberley at O’Reilly’s Fluent Conference, running through the history of the Line Mode Browser and the hack project we worked on at CERN to emulate it.

Tagged with

Previously on this day

7 years ago I wrote Teaching in Porto, day five

Friday: self-directed learning.

7 years ago I wrote Teaching in Porto, day four

Thursday: putting it all together.

9 years ago I wrote Cerf rocks

Long-term thinking for digital storage.

10 years ago I wrote Launching for America

The new Code for America website is live. That was quick!

13 years ago I wrote Sea change

Don’t fear responsive design; embrace it.

15 years ago I wrote Magnoliloss

Back up before your data goes down.

17 years ago I wrote BarCamp London 2: The Schedule

Get the line-up in hCalendar.

17 years ago I wrote BarCamping

BarCamp London 2: electric boogaloo.

21 years ago I wrote BBC - CNN = 866

Here is the BBC transcript of Hans Blix’s presentation to the UN security council.

21 years ago I wrote Robota

Here’s something a little bit different: a trailer for a book.

22 years ago I wrote New and improved

The eagle-eyed amongst you will have noticed a few changes here in the "Journal" section of adactio.