A Trip Down Memory Lane

Sometimes it pays to be a digital hoarder. I have a growing collection of old files unceremoniously dumpped into an “arch” directory. That collection is now over 25 years old and has turned into an accidental time capsule.

One fun discovery was my old website from 1998. The web was a different place back then. Google was the new kid on the block, barely a year old with “beta” in their logo.

My website was hosted on Geocities at the time, and featured all the greatest fads the late 90s has to offer. Tiled textured background. Check. Visitor count? Check. Frame-based layout? You betcha! Guestbook? Check.

I’m actually a bit surprised at how well it still renders on modern browsers. Let’s dive in.

Welcome to Vinay’s World of Programming!

Here’s the home page in all its late ’90s glory! I’ll casually drop in a 375kB screenshot here. That would have been absolutely extravagant at the time. The whole website clocked in at under 650kB. You see, a lot of people (myself included) accessed the internet over a dial-up modem, which peaked at about 3-4 kB/sec, so it would take nearly two minutes to download an image that large.

Screenshot of the homepage

World of Programming, You Say?

When I discovered Geocities, I learned that I could have my very own website. But what should that website be about? I had learned C a few years ago and just had to share my knowledge with the world!

Screenshot of C Tutorial

Feel free to dive in and start learning! I believe I started writing the tutorial the summer before I started college. I didn’t quite get it done before the summer break ended though, so be sure to take notice of this note at the top.

The C tutorial is still under construction. However all chapters given below are independent and you can start right away, and go through rest of the chapters as they become available, over the next few days.

Feel free to get started with the tutorial right now, and check back in a few days! editor’s note: 26 years and counting.

Netscape Now!

For a second I was a little confused that I was missing a button imploring visitors to use Netscape. On closer inspection, I spotted a broken image referencing a missing now_anim_button.gif. It didn’t take long to find that trusty old gif on another website of the same vintage.

Netscape Now

You see, back then we were at war. The browser war.

The evil empire Microsoft was using underhanded tactics to undermine the competition. They were using their entrenched position in one market sector to stifle compeitition and dominate other sectors.

The first line of defense was small websites like this making sure their visitors new what the right side was and chose wisely.

Luckily the government’s anti-trust case put and end to all that and we have no such problems with tech giants today. editor’s note: check this.

Behold the Guestbook

Back then, it was pretty common for websites to have a “guestbook”. Visitors could fill out a form to leave their name, a comment, and a link back to their own page. That info would the be appended to the “guestbook” page for future visitors to see.

That’s right! you could have form for people to append a link to a page, and it wasn’t immediately get overrun by spam. What a world we lived in!

There was some of this:

I have visited your site before, and you have seen mine as well. But I have totally revamped my site with some nice graphics and other stuff and I am on a new server. Check it out, its really cool! Please sign the guest book.

And some of this:

hi vinay,ur site was pretty ok….very ok actually.ummm….but there’s always room for improvement…try being a little more creative…and a lot more original….and im sure u will have a 5* site in your hands..take care….and best of luck…u’ll probab y need it…

Ouch. Can’t win ’em all, I guess.

My very first front-end app: HYPERSearch

In 1999, searching a website probably typically involved calling a Perl CGI script to search some kind of index. What I chose to do instead was build my frontend app. This was about 15 years before React, and the DOM wasn’t even really a thing yet.

I’ll let my former self explain:

About HYPERSearch

This search system is made using client-side JavaScript, unlike other search systems that rely on server-side technology like CGI. When the page loads, the database is downloaded to your computer, and is searched by the script, giving you the search results instantly, unlike a CGI search where it takes a lot of time to send the query to the server, perform the search, and retrieve the results. Moreover, because the results page is generated on your computer, all search results can be displayed on one page, without worrying about download times. Even if the results page were hundreds of kilobytes long, it would take only a couple of seconds to load.

The database itself, is stored as efficiently as possible to minimise download time, so that it takes only a few seconds to load. Of course, no matter how long it takes to load, it needs to be done only once per session, unless you have disabled caching on your browser. However, while this system is great for small websites like mine, it may be impractical for large websites, with, say, more than a couple of hundred pages or so.

It appears I put meta tags with keywords in my pages and had C++ program that parsed it out and created a javascript file with and index.

SK=new Array(356)
SK[0]="sign";
SK[1]="comment";
SK[2]="comments";
SK[3]="suggestion";
SK[4]="suggestions";
SK[5]="feedback";
.
.
.
SK[353]="faqs";
SK[354]="pc";
SK[355]="pcs";

SU=new Array(25)
SU[0]="(Untitled Page 1);;;addbook.html";
SU[1]="Feedback form;;;feedback.html;0;1;2;3;4;5;6;7;8;9;10;11;12;13;14";
SU[2]="Guestbook;;;guestbook.html;15;16;17;0;1;2;3;4;5;6;7";
SU[3]="Vinay's World of Programming (Frameset);;;";
SU[4]="Home Page;;;main.html;18;19;20;21;22;23;24;25;26";
.
.
.

I have absolutely no idea why I chose to assign the array that way. Pressing “Search” triggered a function that searched the index for mathcing words and used document.write to spit out the results.


function PrintURLs ()
{
	document.writeln ("<H3>Search Hits</H3>");
	document.write ("<P><B>Your search query for ");
	if (LegalWords > 1)
		document.write (parent.SearchMatchAny ? "any of" : "all of");
	document.write (" the word");
	document.write ((LegalWords> 1 ? "s" : "")+ " \"" +parent.SearchString + "\" ");
 	document.write ("over the ");
	switch (parent.SearchArea)
	{
		case 0 : document.write ("whole site"); break;
		case 1 : document.write ("Beginners Section"); break;
		case 2 : document.write ("C Tutorial"); break;
		case 3 : document.write ("Advanced Section"); break;
		case 4 : document.write ("Links Section"); break;
	}
	document.write (" resulted in " + SearchHits + " match");
	document.writeln ((SearchHits != 1 ? "es" : "") + "</B><P>");
.
.
.

All kinds of thing about this code is deprecated, but the most astonishing think is still works on modern browsers over 25 years later!

HYPERSearch: for loop

If you are tempted to use this for your own site, please take note:

HYPERSearch - Copyright © 1999 TECNOLEC Software.

This script is copyrighted. Any kind of unauthorized use is strictly forbidden. Contact the author for more information or permission to use the scripts.

TECNOLEC Software?!

Tecnolec… sorry TECNOLEC… was my first “company”. Although not a real company but the “brand” I used for various projects. The company was pretty diversified with products. Some of these include:

  • HYPERSearch: The vaunted search system mentioend above
  • SmartFormat: A program to format floppy disks and deal with bad sectors and increase capacity from 1.44MB to a mighty 1.72MB.
  • A piano program. Use keys on the keyboard to play shrill monotone sounds on SoundBlaster hardware.
  • An image editor. I think it was called PrintMaster, sadly lost to time.
  • Super Car: Drive a car along an infinite randomly generated road. Uses some rudimentary perspective projection so it looks 3D if you squint.