https://cohost.org/mcc/post/325362-a-one-person-oral-hi
[noscript]
log insign up
[388-c8ea83]
mcc
andi
@mcc
glitch girl
* she/her
* dryad.technology/
Avatar by @girlfiend
Also on Mastodon.
log in
mcc
andi@mcc11/17/2022, 11:12 PM
---------------------------------------------------------------------
A one-person oral history of Geocities HTML Chat
The "Image not found" graphic from Netscape 4.
Geocities HTML Chat has been forgotten by the world. It is possible I
am the only one who remembers it. I only half remember it. It was my
first Internet community.
Here is what I remember.
Background
1. Geocities was a formative website for the older millennials who
are just barely old enough to remember when the "web browser" was
introduced, but not old enough to be adults when it happened. It
wasn't a very good site.
Geocities was the first, or at least biggest, of the "free web
hosts" of the early Internet. Anyone could sign up for a
pittance-small (5 megabytes? 10 megabytes?) web directory, and
FTP up their HTML and GIF files and Geocities would host it raw
and unaltered. Geocities sites had the ugliest URLs on the
Internet. Each URL consisted of the user's "city", followed by a
four-digit number Geocities assigned. The "cities" were broad
categories indicating the type of content your site would
contain, like "SiliconValley" for computers, "WestHollywood" for
LGBT topics, or... "Tokyo"1. The categories seemed ill-thought-out
and lumpy. The existence of "NapaValley" seemed to indicate they
believed there would be roughly as many sites about wine as about
all computer-related subjects combined.
These "cities" seem to have been part of a very vague desire to
conceptualize Geocities' very basic service (HTTP file hosting)
as in fact a collection of communities. The people who made
Geocities had some kind of sense the social web would, or could,
someday exist. They could smell it, they could feel the heat of
the thing in the room with them. They just had no idea what it
would look like. Leaping from flat file hosting to something that
looks like "social" "media" requires interactivity, and that was
just not really available in webtech at that early point.
Cross-page communities were things stitched in by hand (like the
"webrings" the Mastodon crowd loves so much; these littered
Geocities and invariably consisted of 50% dead links). "CGI-BIN"
existed, on some sites (not Geocities), but all it could do was
generate new flat files, so people largely only used CGI for the
most basic purposes: "Guestbooks" where you could leave your name
and a bit of text which would be appended to the HTML of the
guestbook page; mindlessly simple "counters" which would generate
on each load a GIF containing a number one higher than the last
one loaded, showing how many people had visited that page.
If you're old enough to remember this time, you're kind of
nodding off at this point in the post. You know all this. But you
probably did not know about Geocities HTML Chat, and if you knew
it existed and what it was you probably would be actually
shocked. I'm not sure you're even going to believe me this was a
real thing that existed.
---------------------------------------------------------------------
The thing itself
2. Geocities HTML Chat was the only "community" feature I remember
Geocities ever attempting other than the mere fact of the "city"
names. Most Geocities users didn't seem to know the chat was
there. The concept was simplicity itself.
Geocities HTML Chat was, from a technical perspective, a
guestbook with a small twist. There was a chat for each of the
"cities" (my home was SiliconValley, I think?). Each chat used
(of course) frames to display two smaller webpages. One frame
above (I don't actually remember, but let's say it was above) was
a thin band containing a CGI input form. The lower frame was
larger, and scrolled freely. This frame used a server-side trick;
the server would tell your web browser it was sending it an
infinitely long web page (or maybe it just claimed it was some
impossibly large size, a gigabyte or something). It would send it
the opening , and then it would hang. It would keep the
socket open. When a user in the chat room submitted a line to
their CGI box, every user would simultaneously receive a new line
on the bottom-frame open socket (which their web browser
sincerely believed an ordinary webpage was actually really
loading into, just very slowly):
Nickname: Chat Text
And so, a chat room. Any user hits "submit", what they submitted
appears on all our screens at once. Cute trick, you're thinking.
They've just faked a dynamically loading chatroom without using
any dynamic HTML features at all. But you've missed the important
part.
When a user submits text, it is forwarded to everyone's
chatscroll frame unchanged.
There was no input sanitization at all.
3. Think like a Cohost user. Imagine the most extreme way you could
use, or abuse, a chat room in which anything you say may contain
unsanitized HTML.
Whatever you're thinking, we did it.
On GeoCities HTML chat you could use raw HTML in your chat posts.
You could use raw HTML in your nickname. Most people did. Most
users' nicknames contained images.
You could do anything.
4. goodmorning.gifI had a particular trick I liked. I'd figured out
I could align=right an
and it would "float" right and text
would flow around it. So I had a little html block I'd
occasionally begin my chats with that would float right a GIF I
liked (hosted, of course, off my personal website; it was the
System 7 "Finder icon" of a one-piece Macintosh, on a green hill,
with a mushroom cloud erupting behind it) and that GIF would link
to my personal webpage. It was normal (and acceptable) for people
to post recurring, banner-like HTML adverts of their
announcements and websites; Geocities HTML Chat had no history,
there were no logs, so repetition was the only way to make
something seen. This was my version of that, but it was subtle,
and could fit right into whatever else I was saying at the time.
I could have put the float-right GIF in my nickname, of course,
if I'd wanted, but that would be overbearing.
5. Because inputs were unsanitized and HTML was allowed, a
semi-common problem was that people would open HTML tags and
forget to close them. A stray < would be no problem, that would
only result in the rest of that person's chat being deleted up to
the next
, but if someone said but forgot to (or typoed)
their then the chat would simply be in italics, everyone's
chats, until someone posted a . Flubbing tag closure was seen
as an embarrassing faux pas, no worse, and moderators and
experienced users simply saw it as one of their community duties
to notice left-open tags and post a corresponding close tag.
This did, obviously, leave room for griefing, but less than you'd
think, because this was the HTML 2.0 era and there simply wasn't
enough in the HTML standard yet to allow for truly major abuses.
CSS didn't exist yet. About the worst someone could do would be
to use an "obscure" tag, or something, which would result
in a visible formatting difference but leave the high level users
confused as they spammed various close tags without guessing the
right one. I think occasionally it would occur to someone to post
a