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