March, 19, 2024 archives
What we had and didn’t keep
I have been reflecting on my time at HomePage.com, prompted by what I saw at SCALE 21x. I wish I had written down more of my experiences, because I think we may have been doing some things that were ahead of their time.
It was an idealab incubated startup, and when I joined it was doing what you would now call free static web page hosting. Part of the original idea was you could buy and sell your account name (subdomain) but I am pretty sure that idea was on its way out when I joined. To make money, we injected a banner into the header of your HTML pages that included our branding and a banner ad.
Jerry Mathers (that’s right – Beaver from Leave It to Beaver) hosted his site on HomePage.com.
This was 1998, right around the time of the GeoCities IPO, before it was then acquired by Yahoo. There were some people who came to HomePage.com from GeoCities, and I have fuzzy memories that one or more of them had started the day that everyone found out they had hit the IPO lottery, and they were able to cash out despite not having worked there for any real length of time.
All of the content was static, stored on beefy (for the time) NFS file servers and used F5 Networks load balancers on the front end. Our code was all written in Perl using mod_perl
running on Apache. We used the filesystem as our only database, and we had a library that we preloaded (LD_PRELOAD
) that intercepted any file access and hashed the top-level directory access. So requests for /whatever/public_html
would actually be accessing /mount/nfs/3/wh/at/ever/public_html
or something like that. The number of NFS backends could be changed and there were migration tools that would re-distribute the files, and the pre-loaded library would transparently deal with it all.
What I developed was an HTML page editor that worked on templates with what we called “gear” embedded. That meant we could build page templates where the user just edited particular elements, and we could embed gear that pulled in other data. For example, {% stock symbols="AAPL,DIS" /%}
would generate something showing stock price data. The original parser was terrible because I didn't know what I was doing and it was regex-based. Eventually another engineer on the team wrote a real lexer and parser when we needed to address that performance bottleneck.
The next step to the business was to white-label the service we were running on HomePage.com to other sites. We ended up with some reasonably impressive (for the time) customers including ICQ.com, About.com, BET.com, PetSmart.com, and more. It was sort of the portal era of the dotcom boom, so any large web property was starting to offer email hosting, web hosting, and other dumb stuff to keep you on their site. AltaVista.com tried to buy us but the board rejected the offer.
It was a start-up and this was way before the era of DevOps and all that, so although my job in today’s lingo would have just been product/software development, I also helped rack servers in our colo facility and do other system administration tasks. We built tools that would let us run commands on all of our servers, an ancestor of today’s DevOps automation tools.
As you might guess, a big problem we dealt with was spam and undesirable content. We built tools that would analyze files that were uploaded (finding warez – pirated commercial software — hidden in chunked ZIP or RAR files appended to image files was a big one). We ran our own IRC server, and we had a bot that would report file uploads to a channel and would also respond to commands to delete accounts and users. We had a customer service team that handled most of it, but I remember dropping into the channel and you could pretty easily spot when problems were developing and just start nuking accounts. I’m sure we did petty things like replace the warez files and porn with ridiculous things, too.
At one point we used one of our office’s whiteboard walls to draw out our whole plan for managing the versioning and branching of our code repository (which must have been in CVS?) so we could roll out changes to the core system while still having customizations for each of our white-label clients. I remember it being pretty messy and hard to get everyone on board across the back-end and front-end teams, but we managed to make it work somehow.
We also had a deployment system that was based on the FreeBSD package system. This is one of these things that I wish there was some lasting documentation of what we did, because I remember it working remarkably well. (And by “we” I mean mostly or entirely “not me” because I don’t think I had much to do with developing it.)
We licensed a web analytics tool called Urchin that I remember being one of the first pretty intense JavaScript web applications. I had to run its CGI process behind our mod_perl setup so we could wrap the output in the appropriate theming for whatever site the user was part of. Urchin got acquired by Google and it ended up being the foundation for Google Analytics. A side note, one of the people they had built Urchin for was this artist named Shepard Fairey with his “OBEY” stickers.
Around the time that Blogger was going through their growing pains and laid off all of their staff, I had suggested to our management that we should look at buying it. I thought blogs might be a good companion to web page hosting. Instead, it ended up going to that Google company again.
Another email I really wish that I still had was where I outlined my idea for a system that was basically a self-managing cluster with some sort of leader election system, except I had framed in gangster terms.
As the dotcom era started melt down and the company cast about to find other ways to survive, we developed what we called ePage.com which I’ll just quote the marketing copy to explain: “Consumers typically interact with car dealers only at the time of purchase or if there's a problem with the vehicle. The ePage solution forms the basis for an ongoing relationship between the consumer and the vendor by combining customer service, personalized content, and cross-selling opportunities all in one convenient place.”
I think we only signed up one client for the ePage service, and I know that I built it as a one-off but I couldn’t tell you much more about it. Eventually the whole company pivoted to being a reseller for an off-the-shelf enterprise software package that the CEO grew enamored of and was renamed to Frontera Corporation, and I was let go. They were supposed to be acquired by Loudcloud, which is a name I haven’t heard in a while, but there was a legal battle and I don’t know the ultimate outcome.
As I am searching for a job, there are so many technologies that I have seen mentioned in the desired skills where I go on to learn that it’s just the nice, fancy version of stuff we were building our way towards back then at HomePage.com.